/* izeos GrantFlow — identità visiva allineata a provider.izeos.it */
/* 9.88: i caratteri arrivano dal nostro server, non più da Google */
@import url('font/font.css');

:root{
  --blu:#060ED0;
  --blu-scuro:#0409A3;
  --navy:#0A0D31;
  --ink:#0A0D31;
  --paper:#F4F6FB;
  --white:#fff;
  --line:#E2E6F0;
  --soft:#EEF1F8;
  --blu-soft:#E2E6F0;
  --muted:#5E6785;
  --ok:#0F8A4D; --ok-soft:#E3F5EC;
  --warn:#B0761A; --warn-soft:#FBF1DC;
  --danger:#C0392B; --danger-soft:#FBE9E7;
  --r:10px; --rl:16px;
  --ombra:0 1px 2px rgba(10,13,49,.04), 0 8px 24px rgba(10,13,49,.06);
  /* 9.88 — le scale uniche. Prima c'erano 79 dimensioni di testo, 31 interlinee e 28
     larghezze diverse di «passaggio al telefono»: valori quasi uguali che, messi uno
     accanto all'altro, danno l'impressione di storto senza che si capisca perché.
     Una dimensione nuova si sceglie da qui, non si inventa. */
  --fs-micro:11px;        /* etichette in maiuscolo, numeri nei tondini */
  --fs-piccolo:12.5px;    /* note, date, righe secondarie */
  --fs-secondario:14px;   /* testo delle tabelle, dei moduli, del menu */
  --fs-testo-s:15px;      /* testo compatto */
  --fs-testo:16px;        /* testo normale */
  --fs-titoletto:18px;    /* titolo di un riquadro */
  --fs-titolo:22px;       /* titolo di sezione (h2) */
  --fs-titolo-g:28px;     /* titolo di pagina (h1) */
  /* gli spazi: multipli di 4 */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px;
  /* un'altezza sola per campi e pulsanti, così stanno in riga senza scalini */
  --alt-campo:42px;
  --grigio-chiaro:#9AA3BD;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--paper);color:var(--ink);
  font:16px/1.55 'Inter Tight',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  -webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;font-family:Montserrat,sans-serif;font-weight:700;line-height:1.25;letter-spacing:-.01em}
h1{font-size:var(--fs-titolo-g)}h2{font-size:var(--fs-titolo)}h3{font-size:var(--fs-titoletto);font-weight:600}
p{margin:0 0 12px}
a{color:var(--blu);text-decoration:none}
a:hover{text-decoration:underline}
.muted{color:var(--muted)}.small{font-size:var(--fs-secondario)}.mono{font-variant-numeric:tabular-nums}
.right{text-align:right}
button{font:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}

.occhiello{font-family:Montserrat,sans-serif;font-size:var(--fs-piccolo);font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--blu);margin-bottom:6px}

/* back-office */
.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.shell > *{min-width:0}
main{min-width:0;max-width:100%}
aside{background:var(--navy);color:#fff;padding:22px 14px;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:10px;padding:2px 8px 20px}
.brand a{color:#fff}

.logo-box{display:inline-flex;align-items:center}
.logo-box img{height:30px;display:block}
aside nav a{display:block;padding:9px 12px;border-radius:var(--r);color:#C9CEE8;margin-bottom:2px;font-size:var(--fs-testo-s)}
aside nav a:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
aside nav a.on{background:var(--blu);color:#fff;font-weight:600}
.nav-sez{font-family:Montserrat,sans-serif;font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;
  color:#6B74A8;margin:20px 0 6px;padding:0 12px}
/* il riquadro utente sta subito sotto l'ultima voce, non in fondo alla pagina */
.me{margin:18px 0 8px;padding:14px 12px 4px;font-size:var(--fs-secondario);color:#8A93BE;border-top:1px solid rgba(255,255,255,.09)}
.me b{color:#fff;font-weight:600}
.me a{color:#C9CEE8}
main{padding:34px 40px 80px;max-width:1240px}
.topbar{display:flex;align-items:center;gap:14px;margin-bottom:26px;flex-wrap:wrap}
.topbar h1{flex:1}
.crumb{font-family:Montserrat,sans-serif;font-size:var(--fs-piccolo);font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.crumb a{color:var(--muted)}

.btn{display:inline-block;border:1.5px solid var(--line);background:#fff;border-radius:var(--r);
  padding:11px 20px;color:var(--ink);font-weight:600;font-size:var(--fs-testo-s);transition:.15s}
.btn:hover{border-color:var(--blu);color:var(--blu);text-decoration:none}
.btn.primary{background:var(--blu);border-color:var(--blu);color:#fff}
.btn.primary:hover{background:var(--blu-scuro);border-color:var(--blu-scuro);color:#fff}
.btn.danger{color:var(--danger);border-color:#EFC6C1}
.btn.sm{padding:6px 13px;font-size:var(--fs-secondario)}
.btn[disabled]{opacity:.4;pointer-events:none}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.g21{display:grid;grid-template-columns:2fr 1fr;gap:18px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--rl);padding:24px;margin-bottom:18px;
  box-shadow:var(--ombra)}
.panel h3{margin-bottom:12px}
a.panel:hover{border-color:var(--blu);text-decoration:none}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--rl);padding:18px 20px;box-shadow:var(--ombra)}
.stat .v{font-family:Montserrat,sans-serif;font-size:34px;font-weight:700;line-height:1.05;letter-spacing:-.02em}
.stat .l{font-size:var(--fs-secondario);color:var(--muted);margin-top:4px}
.stat.warn{border-left:4px solid var(--warn)}
.stat.danger{border-left:4px solid var(--danger)}
.stat.ok{border-left:4px solid var(--ok)}
.pill{display:inline-block;font-size:var(--fs-piccolo);font-weight:600;padding:4px 11px;border-radius:99px;
  background:var(--soft);color:var(--muted);white-space:nowrap}
.pill.accent{background:var(--blu-soft);color:var(--blu)}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
.pill.warn{background:var(--warn-soft);color:#7a4e0c}
.pill.danger{background:var(--danger-soft);color:var(--danger)}
table,.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-testo-s)}
th{text-align:left;font-family:Montserrat,sans-serif;font-weight:700;color:var(--muted);font-size:var(--fs-piccolo);
  letter-spacing:.1em;text-transform:uppercase;padding:10px 12px;border-bottom:2px solid var(--soft)}
td{padding:13px 12px;border-bottom:1px solid var(--soft);vertical-align:top}
tr:last-child td{border-bottom:0}
tr.clickable{cursor:pointer;transition:.12s}
tr.clickable:hover td{background:var(--blu-soft)}
.note{border-radius:var(--r);padding:14px 16px;margin-bottom:18px;font-size:var(--fs-testo-s);
  background:var(--blu-soft);border-left:4px solid var(--blu)}
.note.ok{background:var(--ok-soft);border-color:var(--ok)}
.note.danger{background:var(--danger-soft);border-color:var(--danger)}
.note.warn{background:var(--warn-soft);border-color:var(--warn)}
.empty{padding:48px 28px;text-align:center;color:var(--muted);border:1.5px dashed var(--line);
  border-radius:var(--rl);background:#fff}
.empty h2{color:var(--ink);margin-bottom:8px}
.bar{height:9px;background:var(--soft);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--blu);border-radius:99px}
.kv td:first-child{color:var(--muted);width:38%}

.form label{display:block;font-family:Montserrat,sans-serif;font-size:var(--fs-secondario);font-weight:600;margin-bottom:18px}
.form label span{font-weight:400;color:var(--muted)}
.form input,.form select,.form textarea{display:block;width:100%;margin-top:7px;
  border:1.5px solid var(--line);border-radius:var(--r);padding:13px 15px;background:#fff;
  font-family:'Inter Tight',sans-serif;font-weight:400;font-size:var(--fs-testo);transition:.15s}
.form input:hover,.form select:hover,.form textarea:hover{border-color:#C9CEE0}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--blu);
  box-shadow:0 0 0 4px rgba(var(--alone,6,14,208),.10)}
.form input[type=file]{padding:11px 14px;background:var(--soft);border-style:dashed;cursor:pointer}
.form input[type=checkbox],.form input[type=radio]{width:auto;display:inline-block;margin:0 8px 0 0;
  transform:scale(1.2);accent-color:var(--blu)}
.hint{font-weight:400;color:var(--muted);font-size:var(--fs-piccolo);margin-top:5px;font-family:'Inter Tight',sans-serif}

.auth-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:var(--navy)}
.auth-card{background:#fff;border-radius:20px;padding:38px;width:100%;max-width:460px;
  box-shadow:0 24px 60px rgba(0,0,0,.32)}

body.ext{background:var(--paper)}
.ext-hero{background:linear-gradient(120deg,var(--navy) 0%,#161C5C 62%,var(--blu) 145%);color:#fff;
  padding:26px 0 30px;margin-bottom:34px}
.ext-hero .in{max-width:960px;margin:0 auto;padding:0 22px}
.ext-hero .top{display:flex;align-items:center;gap:14px;padding-bottom:22px}
.ext-hero .top img{height:24px}
.ext-hero .who{margin-left:auto;font-size:var(--fs-secondario);color:#B9C0E6}
.ext-hero .occhiello{color:#8E97D8}
.ext-hero h1{color:#fff;font-size:34px}
.ext-hero .sub{color:#C2C8EC;margin-top:6px;font-size:var(--fs-testo)}
.ext-hero .prov{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:99px;
  padding:6px 15px;font-size:var(--fs-secondario);color:#fff}
.ext-hero a{color:#fff;font-weight:600;font-size:var(--fs-secondario)}
.ext-shell{max-width:var(--pub-col);margin:0 auto;padding:0 22px 90px}
.ext .panel{padding:28px}

.schede{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.schede.tre{grid-template-columns:repeat(3,1fr)}
.scheda{background:#fff;border:1px solid var(--line);border-radius:var(--rl);padding:26px;display:block;
  color:inherit;box-shadow:var(--ombra);transition:.16s}
.scheda:hover{border-color:var(--blu);text-decoration:none;box-shadow:0 10px 30px rgba(6,14,208,.12)}
.scheda .ico{width:46px;height:46px;border-radius:12px;background:var(--blu-soft);color:var(--blu);
  display:flex;align-items:center;justify-content:center;font-size:var(--fs-titolo);margin-bottom:16px;font-weight:700}
.scheda h3{font-size:var(--fs-titoletto);margin-bottom:8px}
.scheda p{color:var(--muted);font-size:var(--fs-testo-s);margin-bottom:14px}
.scheda .vai{color:var(--blu);font-weight:600;font-size:var(--fs-testo-s)}

.step{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.step div{font-family:Montserrat,sans-serif;font-size:var(--fs-piccolo);font-weight:600;padding:7px 14px;
  border-radius:99px;background:var(--soft);color:var(--muted)}
.step div.now{background:var(--blu);color:#fff}
.step div.done{background:var(--blu-soft);color:var(--blu)}

/* ---------- barra di navigazione pubblica ---------- */
.topnav{background:var(--navy);position:sticky;top:0;z-index:40}
.topnav .in{max-width:1080px;margin:0 auto;padding:0 26px;display:flex;align-items:center;gap:8px;height:62px}
.topnav .logo{display:flex;align-items:center;margin-right:14px}
.topnav .logo img{height:21px}
.topnav a{color:#B9C0E6;font-size:var(--fs-testo-s);font-weight:600;padding:8px 13px;border-radius:8px}
.topnav a:hover{color:#fff;background:rgba(255,255,255,.08);text-decoration:none}
.topnav a.on{color:#fff;background:rgba(255,255,255,.12)}
.topnav .destra{margin-left:auto;display:flex;gap:8px;align-items:center}
.topnav .destra a.riservato{color:#7F88C0;font-weight:500;font-size:var(--fs-piccolo)}
.topnav .destra a.riservato:hover{color:#fff;background:transparent;text-decoration:underline}
@media (max-width:700px){
  .topnav .in{height:auto;padding:10px 16px;flex-wrap:wrap;gap:4px}
  .topnav a{padding:7px 10px;font-size:var(--fs-secondario)}
  .topnav .destra{margin-left:0;width:100%;margin-top:4px}
}

/* hero compatto per le pagine interne */
.ext-hero{padding:30px 0 34px}
.ext-hero .top{display:none}
.ext-hero .in{max-width:1080px}
.ext-hero h1{font-size:30px}
.ext-hero .sub{font-size:var(--fs-testo);max-width:62ch}

/* home più asciutta */

/* ---------- pagina iniziale: stili base ---------- */

.due{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.big{background:#fff;border:1px solid var(--line);border-radius:22px;padding:34px;display:flex;
  flex-direction:column;box-shadow:0 10px 40px rgba(10,13,49,.10);transition:.18s;color:inherit}
.big:hover{box-shadow:0 18px 54px rgba(6,14,208,.16);border-color:var(--blu);text-decoration:none}
.big.chiaro{background:linear-gradient(180deg,#fff 0%,#F4F6FB 100%)}
.big .tag{font-family:Montserrat,sans-serif;font-size:var(--fs-micro);font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--blu);margin-bottom:14px}
.big h2{font-size:var(--fs-titolo-g);margin-bottom:10px}
.big .cosa{color:var(--muted);font-size:var(--fs-testo);margin-bottom:18px}
.big .cta{margin-top:auto;display:inline-flex;align-items:center;gap:8px;background:var(--blu);color:#fff;
  border-radius:var(--r);padding:13px 24px;font-weight:600;align-self:flex-start}
.big:hover .cta{background:var(--blu-scuro)}
.piede{text-align:center;color:var(--muted);font-size:var(--fs-secondario);margin-top:30px}
.big .punti{list-style:none;margin:0 0 22px;padding:0;border-top:1px solid var(--soft);padding-top:16px}
.big .punti li{position:relative;padding:6px 0 6px 26px;font-size:var(--fs-testo-s);color:var(--ink)}
.big .punti li:before{content:'';position:absolute;left:4px;top:14px;width:7px;height:7px;border-radius:50%;background:var(--blu)}
.big .punti li span{color:var(--muted)}

.badge{display:inline-block;background:var(--blu);color:#fff;font-size:var(--fs-piccolo);font-weight:700;
  border-radius:99px;padding:1px 8px;margin-left:8px;vertical-align:middle}
aside nav a.on .badge{background:#fff;color:var(--blu)}
.big .punti li b{font-family:Montserrat,sans-serif;font-size:var(--fs-testo-s);font-weight:600}

/* ---------- grafici ---------- */
.gbarre{margin-top:6px}
.gb-riga{display:grid;grid-template-columns:1fr 2fr auto;gap:12px;align-items:center;padding:7px 0}
.gb-et{font-size:var(--fs-secondario);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gb-barra{height:12px;background:var(--soft);border-radius:99px;overflow:hidden}
.gb-barra i{display:block;height:100%;border-radius:99px;transition:width .4s}
.gb-val{font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-secondario);min-width:72px;text-align:right}
.gb-nota{display:block;font-family:'Inter Tight',sans-serif;font-weight:400;font-size:var(--fs-piccolo);color:var(--muted)}
.ganello-box{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.ganello{width:140px;height:140px;flex:none}
.glegenda{font-size:var(--fs-secondario)}
.glegenda div{display:flex;align-items:center;gap:8px;padding:4px 0;color:var(--muted)}
.glegenda span{width:11px;height:11px;border-radius:3px;display:inline-block}
.glegenda b{color:var(--ink);margin-left:2px}

/* ============================================================
   MOBILE — rivisto a 390px
   ============================================================ */
.barra-mob{display:none}
.mnu-chk{display:none}
.mnu-sfondo{display:none}

@media (max-width:900px){
  /* --- barra fissa in alto con menu a scomparsa --- */
  .barra-mob{display:flex;align-items:center;gap:12px;background:var(--navy);color:#fff;
    padding:0 14px;height:56px;position:sticky;top:0;z-index:60}
  .mnu-btn{width:26px;height:20px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;flex:none}
  .mnu-btn span{display:block;height:2.5px;background:#fff;border-radius:2px;transition:.2s}
  .mnu-chk:checked + .barra-mob .mnu-btn span:nth-child(1){transform:translateY(8.5px) rotate(45deg)}
  .mnu-chk:checked + .barra-mob .mnu-btn span:nth-child(2){opacity:0}
  .mnu-chk:checked + .barra-mob .mnu-btn span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg)}
  .mob-logo{display:flex;align-items:center}
  .mob-logo img{height:18px}

  .shell{grid-template-columns:1fr}

  /* Il menu è un pannello che SOVRASTA la pagina, non una fisarmonica che la
     spinge in basso. Prima si apriva dentro il flusso: il sito restava sotto,
     visibile e scorrevole, e scorrendo il menu si trascinava anche la pagina.
     Adesso sta fisso sopra, scorre per conto suo, e dietro c'è un velo che lo
     chiude al tocco. Tutto senza JavaScript, come il resto del menu. */
  aside{position:fixed;top:56px;left:0;bottom:0;z-index:70;
    width:min(330px,86vw);max-height:none;padding:12px 12px 28px;border:0;
    overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
    transform:translateX(-102%);transition:transform .22s ease;
    box-shadow:6px 0 24px rgba(10,13,49,.35)}
  .mnu-chk:checked ~ .shell aside{transform:none}
  /* il velo: niente finché il menu è chiuso, e mai cliccabile a vuoto */
  .mnu-sfondo{display:block;position:fixed;inset:56px 0 0;z-index:65;background:rgba(10,13,49,.55);
    opacity:0;pointer-events:none;transition:opacity .22s ease}
  .mnu-chk:checked ~ .mnu-sfondo{opacity:1;pointer-events:auto}
  /* con il menu aperto la pagina sotto non si muove */
  body:has(.mnu-chk:checked){overflow:hidden}
  aside .brand{display:none}
  aside nav a{padding:13px 14px;font-size:var(--fs-testo);border-radius:10px}
  .nav-sez{margin:14px 0 4px}
  .me{margin-top:14px}

  main{padding:18px 16px 70px;max-width:100%}
  h1{font-size:var(--fs-titolo-g)}
  h2{font-size:var(--fs-titolo)}
  .topbar{gap:8px;margin-bottom:18px}
  .topbar h1{flex:1 1 100%}
  .crumb{margin-bottom:8px}

  /* --- griglie --- */
  .g2,.g21,.g3{grid-template-columns:1fr;gap:14px}
  .g4{grid-template-columns:1fr 1fr;gap:12px}
  .panel{padding:18px 16px;border-radius:14px;margin-bottom:14px}
  .stat{padding:14px 16px}
  .stat .v{font-size:var(--fs-titolo-g)}
  .stat .l{font-size:var(--fs-piccolo)}

  /* --- tabelle: scorrimento orizzontale con indizio --- */
  .panel{position:relative}
  .panel{overflow:hidden}
  .panel > table,.panel > form > table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;
    width:100%;max-width:100%;white-space:nowrap;padding-bottom:8px}
  .panel > table td,.panel > form > table td{white-space:normal;min-width:96px}
  .panel > table td:first-child,.panel > form > table td:first-child{min-width:130px}
  .panel > table.kv,.panel table.kv{display:table;width:100%;white-space:normal}
  .panel table.kv td{min-width:0}
  .panel > form.form{max-width:100%;overflow:hidden}
  .panel > form.form .row{flex-wrap:wrap}
  .panel > form.form select,.panel > form.form input[type=file]{max-width:100%}
  th{font-size:var(--fs-micro);padding:8px 8px}
  td{padding:10px 8px;font-size:var(--fs-secondario)}
  .tbl{display:block;overflow-x:auto}

  /* --- moduli: campi grandi, niente zoom su iOS --- */
  .form label{font-size:var(--fs-testo-s);margin-bottom:16px}
  .form input,.form select,.form textarea{font-size:var(--fs-testo);padding:14px;border-radius:12px}
  .form input[type=file]{padding:14px}
  .row{gap:8px}
  .btn{padding:13px 20px;width:auto}
  .btn.sm{padding:9px 14px}
  form .btn.primary{width:100%;text-align:center}
  .row .btn{flex:1 1 auto;text-align:center}

  /* --- pagine pubbliche --- */
  .topnav .in{height:auto;padding:10px 14px;gap:6px;flex-wrap:wrap}
  .topnav a{padding:8px 11px;font-size:var(--fs-secondario)}
  .topnav .destra{margin-left:auto;width:auto;margin-top:0}
  .topnav .logo{margin-right:6px}
  .ext-hero{padding:22px 0 26px;margin-bottom:22px}
  .ext-hero .in{padding:0 16px}
  .ext-hero h1{font-size:var(--fs-titolo-g)}
  .ext-hero .sub{font-size:var(--fs-testo-s)}
  .ext-shell{padding:0 16px 70px}
  .ext .panel{padding:20px 16px}
  .schede,.schede.tre{grid-template-columns:1fr;gap:14px}
  .scheda{padding:20px}
  .scheda .ico{width:40px;height:40px;font-size:var(--fs-titoletto);margin-bottom:12px}
  .scheda h3{font-size:var(--fs-titoletto)}

  /* --- home --- */

  .due{grid-template-columns:1fr;gap:14px}
  .big{padding:22px 18px;border-radius:16px}
  .big h2{font-size:var(--fs-titolo)}
  .big .cosa{font-size:var(--fs-testo-s)}
  .big .punti li{font-size:var(--fs-testo-s);padding:5px 0 5px 22px}
  .big .cta{width:100%;justify-content:center;padding:14px 20px}

  /* --- accesso --- */
  .auth-card{padding:26px 20px;border-radius:16px}

  /* --- grafici --- */
  .gb-riga{grid-template-columns:1fr auto;gap:4px 10px;padding:9px 0;
    border-bottom:1px solid var(--soft)}
  .gb-et{grid-column:1;font-size:var(--fs-secondario);white-space:normal}
  .gb-val{grid-column:2;min-width:0;text-align:right}
  .gb-barra{grid-column:1 / -1;order:3;height:10px}
  .ganello-box{gap:14px;justify-content:center}
  .ganello{width:120px;height:120px}

}

@media (max-width:420px){
  .g4{grid-template-columns:1fr 1fr;gap:10px}
  .stat .v{font-size:var(--fs-titolo)}
  h1{font-size:var(--fs-titolo)}

  .big h2{font-size:var(--fs-titoletto)}
  main{padding:16px 12px 60px}
  .ext-shell{padding:0 12px 60px}

}

/* ---------- piè di pagina ---------- */
.piede-sito{background:var(--navy);color:#A8B0DA;margin-top:60px}
.piede-sito .in{max-width:1080px;margin:0 auto;padding:44px 26px 30px;
  display:grid;grid-template-columns:1.6fr 1fr 1fr .8fr;gap:34px}
.piede-logo{height:22px;margin-bottom:16px}
.piede-sito .tit{font-family:Montserrat,sans-serif;font-size:var(--fs-micro);font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:#fff;margin-bottom:12px}
.piede-sito p{margin:0 0 12px;line-height:1.7}
.piede-sito .small{font-size:var(--fs-secondario)}
.piede-sito a{color:#A8B0DA}
.piede-sito a:hover{color:#fff}
.riga-piede{border-top:1px solid rgba(255,255,255,.10);text-align:center;padding:18px;
  font-size:var(--fs-piccolo);color:#7F88C0}
@media (max-width:900px){
  .piede-sito{margin-top:36px}
  .piede-sito .in{grid-template-columns:1fr 1fr;gap:26px 20px;padding:32px 16px 22px}
  .piede-sito .col:first-child{grid-column:1 / -1}
  .piede-logo{height:19px;margin-bottom:12px}
  .riga-piede{padding:16px;font-size:var(--fs-piccolo)}
}
@media (max-width:420px){
  .piede-sito .in{grid-template-columns:1fr}
}

.scelta{display:flex;gap:12px;align-items:flex-start;border:1.5px solid var(--line);border-radius:12px;
  padding:14px;margin-bottom:10px;cursor:pointer;font-weight:400;background:#fff}
.scelta.sel{border-color:var(--blu);background:var(--blu-soft)}
.scelta input{margin-top:3px}
.scelta b{font-family:Montserrat,sans-serif;font-size:var(--fs-testo-s)}

@media print{
  aside,.barra-mob,.topbar .btn,.row .btn,.crumb,.note.small{display:none!important}
  .shell{display:block}main{padding:0;max-width:100%}
  .panel{box-shadow:none;border:0;padding:0 0 18px;page-break-inside:avoid}
}

.spunta{width:26px;height:26px;border:2px solid var(--line);background:#fff;border-radius:8px;color:transparent;
  font-size:var(--fs-testo-s);font-weight:700;cursor:pointer;line-height:1;padding:0}
.spunta:hover{border-color:var(--blu);color:var(--line)}
.spunta.on{background:var(--ok);border-color:var(--ok);color:#fff}

/* ---------- gantt ---------- */
.gantt{overflow-x:auto;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:14px 12px 8px}
.gantt-in{min-width:560px;position:relative;padding-top:22px}
.gantt-mesi{position:absolute;top:0;left:210px;right:0;height:18px}
.gantt-mesi span{position:absolute;font-family:Montserrat,sans-serif;font-size:var(--fs-micro);font-weight:600;
  color:var(--muted);transform:translateX(-50%);white-space:nowrap}
.gantt-oggi{position:absolute;top:18px;bottom:0;left:calc(210px + (100% - 210px) * var(--x, 0) / 100);width:0;z-index:2}
.gantt-oggi i{position:absolute;top:0;bottom:0;left:0;border-left:2px dashed var(--blu);opacity:.55}
.gantt-oggi b{position:absolute;top:-20px;left:0;transform:translateX(-50%);font-size:var(--fs-micro);color:var(--blu);
  background:var(--blu-soft);border-radius:99px;padding:1px 7px}
.gantt-riga{display:grid;grid-template-columns:200px 1fr;gap:10px;align-items:center;padding:4px 0}
.gantt-et{font-size:var(--fs-piccolo);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gantt-et.ok{color:var(--muted);text-decoration:line-through}
.gantt-pista{position:relative;height:22px;background:var(--soft);border-radius:6px}
.gantt-barra{position:absolute;top:3px;height:16px;background:var(--blu);border-radius:5px;
  display:flex;align-items:center;justify-content:flex-end;padding-right:5px}
.gantt-barra span{font-size:var(--fs-micro);color:#fff;font-weight:600;white-space:nowrap}
.gantt-barra.fatta{background:var(--ok);opacity:.55}
.gantt-barra.ritardo{background:var(--danger)}
.gantt-barra.vicina{background:var(--warn)}
.gantt-legenda{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:var(--fs-piccolo);color:var(--muted);margin-top:8px}
.gantt-legenda .l{width:12px;height:9px;border-radius:3px;background:var(--blu);display:inline-block;margin-left:8px}
.gantt-legenda .l.fatta{background:var(--ok);opacity:.55;margin-left:0}
.gantt-legenda .l.ritardo{background:var(--danger)}
.gantt-legenda .l.vicina{background:var(--warn)}
/* ---------- calendario ---------- */
.cal{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}
.cal-t{font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-testo-s);margin-bottom:10px;text-transform:capitalize}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-h{font-size:var(--fs-micro);font-weight:700;color:var(--muted);text-align:center;padding-bottom:4px}
.cal-d{min-height:48px;border:1px solid var(--soft);border-radius:8px;padding:4px;font-size:var(--fs-micro);position:relative}
.cal-d b{font-size:var(--fs-piccolo);color:var(--muted);font-weight:600}
.cal-d.pieno{background:var(--blu-soft);border-color:var(--blu-soft)}
.cal-d.oggi{border-color:var(--blu);border-width:2px}
.cal-d i{display:block;height:4px;border-radius:2px;background:var(--blu);margin-top:3px}
.cal-d i.ok{background:var(--ok);opacity:.5}
.cal-d i.rit{background:var(--danger)}
.cal-d u{display:block;font-size:var(--fs-micro);color:var(--muted);text-decoration:none;margin-top:2px}

/* ---------- guida in linea ---------- */
aside .voce{display:flex;align-items:center;gap:4px}
aside .voce > a:first-child{flex:1}
/* la "i" della guida resta in disparte: compare quando serve */

.guida h4{font-family:Montserrat,sans-serif;font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin:14px 0 6px}
.guida ul,.guida ol{margin:0;padding-left:18px}
.guida li{padding:3px 0}
.guida .g2{gap:6px 26px}
/* su telefono non c'è il passaggio del mouse: restano visibili ma appena accennate */

/* ============================================================
   BACK-OFFICE — aree colorate e rifinitura da gestionale
   ============================================================ */
aside{background:linear-gradient(180deg,#0A0D31 0%,#0C1038 100%)}
aside .brand{padding-bottom:14px;margin-bottom:6px;border-bottom:1px solid rgba(255,255,255,.08)}
.nav-sez{display:inline-flex;align-items:center;font-family:Montserrat,sans-serif;
  font-size:var(--fs-micro);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;
  margin:20px 0 8px;padding:5px 11px;border-radius:7px;
  background:var(--sez-soft,rgba(94,103,133,.28));
  box-shadow:inset 3px 0 0 var(--sez,#5E6785)}
aside .voce{position:relative;border-radius:9px}
aside .voce > a:first-child{border-left:3px solid transparent;border-radius:0 9px 9px 0;padding-left:13px}
aside .voce:hover > a:first-child{background:var(--sez-soft,rgba(255,255,255,.05));border-left-color:var(--sez,#5E6785)}
aside .voce > a.on{background:var(--sez,#060ED0);border-left-color:#fff;color:#fff;font-weight:600;
  box-shadow:0 4px 14px rgba(0,0,0,.28)}
aside .voce > a.on .badge{background:#fff;color:var(--sez,#060ED0)}
aside nav > a{border-left:3px solid transparent;padding-left:13px;border-radius:0 9px 9px 0}
aside nav > a:hover{background:rgba(255,255,255,.05)}

/* etichetta dell'area sopra il titolo della pagina */
.area-tag{display:inline-flex;align-items:center;gap:7px;font-family:Montserrat,sans-serif;font-size:var(--fs-micro);
  font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--area);
  background:var(--sez-tenue,rgba(6,14,208,.06));border:1px solid rgba(10,13,49,.10);
  border-radius:99px;padding:5px 13px;margin-bottom:14px}
.area-tag span{width:7px;height:7px;border-radius:2px;background:var(--sez-ch,var(--area))}

/* la pagina prende il colore dell'area dove ha senso */
main .topbar{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:20px}
main .topbar h1{position:relative;padding-left:14px}
main .topbar h1:before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:4px;border-radius:2px;background:var(--sez-ch,var(--area))}
.panel h3{position:relative}
:root{--area:#060ED0}
.btn.primary{background:var(--area);border-color:var(--area)}
.btn.primary:hover{filter:brightness(.92)}
a{color:var(--area)}
.pill.accent{background:var(--blu-soft);color:var(--area)}
.stat{border-left:3px solid var(--area)}
.crumb a{color:var(--area)}

/* tabelle più leggibili */
.panel table tr:hover td{background:#F8F9FD}
.panel table tr.clickable:hover td{background:#F4F6FB;cursor:pointer}
th{border-bottom:2px solid var(--soft);color:#7A83A0}
.panel{border-radius:14px}
.panel + .panel{margin-top:14px}

/* fascia superiore fissa con il colore dell'area, su desktop */
@media (min-width:901px){
  main{position:relative}
  main:before{content:'';position:fixed;top:0;left:250px;right:0;height:3px;background:var(--area);z-index:5}
}
/* metodo izeos: colore di riga */
tr.mt-danger td{background:#FDF1EF}
tr.mt-warn td{background:#FDF8EC}
tr.mt-ok td{background:#F2FAF5}
tr.mt-danger:hover td{background:#FBE6E2}
@media (max-width:900px){
  /* metodo izeos: su telefono il titolo ha bisogno di spazio */
  .panel > table tr[class^="mt-"] td:nth-child(2){display:none}
  .panel > table tr[class^="mt-"] td:nth-child(3){min-width:150px;white-space:normal}
  .panel > table tr[class^="mt-"] td:nth-child(4){display:none}
}

/* ---------- business plan: si compila come un foglio ---------- */
.bp-foglio{padding:0;overflow-x:auto}
table.bp{width:100%;border-collapse:collapse;min-width:820px}
table.bp th{background:#F4F6FB;font-family:Montserrat,sans-serif;font-size:var(--fs-micro);letter-spacing:.06em;
  text-transform:uppercase;color:#5E6785;padding:9px 8px;border-bottom:1.5px solid var(--line);
  position:sticky;top:0;z-index:2;white-space:nowrap}
table.bp td{padding:2px 6px;border-bottom:1px solid #EEF1F8;vertical-align:middle;font-size:var(--fs-secondario)}
table.bp tr.bp-r:hover td{background:#F8F9FD}
.cel{width:100%;border:1px solid transparent;background:transparent;border-radius:6px;padding:7px 8px;
  font:inherit;font-size:var(--fs-secondario);color:var(--ink)}
.cel:hover{border-color:var(--line);background:#fff}
.cel:focus{border-color:var(--area);background:#fff;outline:0;box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}
.cel.testo{font-weight:500}
.cel.piccola{font-size:var(--fs-piccolo);color:var(--muted);padding:3px 8px}
.cel.num{text-align:right;font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-secondario);min-width:92px}
.cel.num.stretta{min-width:76px}   /* 10.50: «10.00» non si taglia più */
.cel.data{width:132px;font-size:var(--fs-piccolo);color:var(--muted)}
.bp-calc{text-align:right;font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-secondario);font-weight:600;white-space:nowrap}
.bp-calc.pos{color:var(--ok)}
.bp-calc.neg{color:var(--danger)}
tr.bp-sez td{background:#E2E6F0;font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-piccolo);
  letter-spacing:.08em;text-transform:uppercase;color:#333E6B;padding:8px 10px}
tr.bp-gran td{background:var(--navy);color:#fff;font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:var(--fs-secondario);padding:11px 8px}
tr.bp-gran td:first-child{font-family:Montserrat,sans-serif;font-size:var(--fs-piccolo)}
tr.bp-nuova td{background:#FFFFFF}
tr.bp-nuova .cel{border-style:dashed;border-color:#D7DDEE}
tr.bp-nuova .cel:focus{border-style:solid}
.bp-saldo{border-width:2px}
.bp-saldo.pos{border-color:var(--ok)}
.bp-saldo.neg{border-color:var(--danger)}
.bp-saldo-in{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.bp-saldo-in > div{display:flex;flex-direction:column;gap:2px}
.bp-saldo .et{font-family:Montserrat,sans-serif;font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.bp-saldo .v{font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-titolo-g);font-weight:700}
.bp-saldo.pos .v{color:var(--ok)}
.bp-saldo.neg .v{color:var(--danger)}
@media (max-width:900px){
  .bp-saldo-in{grid-template-columns:1fr;gap:14px}
  .bp-saldo .v{font-size:var(--fs-titolo)}
  table.bp th{position:static}
}

/* ---------- porte d'ingresso in Oggi ---------- */

.porte{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.porta{display:flex;flex-direction:column;gap:5px;background:#fff;border:1px solid var(--line);
  border-radius:14px;padding:16px;color:inherit;box-shadow:0 4px 14px rgba(10,13,49,.04);transition:.16s}
.porta:hover{text-decoration:none;border-color:var(--area);box-shadow:0 10px 26px rgba(10,13,49,.12);transform:translateY(-2px)}
.porta .ico{width:38px;height:38px;border-radius:11px;background:var(--blu-soft);color:var(--area);
  display:flex;align-items:center;justify-content:center;font-size:var(--fs-titoletto);margin-bottom:4px}
.porta b{font-family:Montserrat,sans-serif;font-size:var(--fs-testo)}
.porta .d{color:var(--muted);font-size:var(--fs-secondario);line-height:1.4;flex:1}
.porta .vai{color:var(--area);font-weight:600;font-size:var(--fs-secondario);margin-top:4px}
@media (max-width:900px){.porte{grid-template-columns:1fr 1fr;gap:10px}.porta{padding:13px}.porta .d{font-size:var(--fs-piccolo)}}
@media (max-width:700px){.porte{grid-template-columns:1fr}}

/* pagine "foglio": usano tutta la larghezza */
main.largo{max-width:none}
/* griglia più compatta: una riga = una riga */
table.bp td{padding:0 4px}
table.bp .cel{padding:6px 7px}
table.bp .cel.piccola{font-size:var(--fs-piccolo);padding:6px 7px;color:var(--ink)}
table.bp tr.bp-r td{height:36px}
table.bp tr.bp-nuova td{height:38px}
.cel.data{width:118px}
@media(min-width:1200px){ table.bp{min-width:0} }
.bp-azioni{white-space:nowrap}
.bp-azioni > *{display:inline-block;vertical-align:middle}
.bp-azioni form{margin:0}
.bp-azioni .x{border:1px solid transparent;background:transparent;color:#C9CEE0;width:26px;height:26px;
  border-radius:7px;font-size:var(--fs-testo);line-height:1;cursor:pointer;padding:0}
.bp-azioni .x:hover{background:#FBE9E7;border-color:#F3C9C2;color:var(--danger)}
table.bp tr.bp-r td{height:34px}
table.bp .cel.testo{font-size:var(--fs-secondario)}

/* metodo izeos: schematico come il foglio */

table.bp.mt td{height:34px}
td.scad{text-align:right;font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-piccolo);font-weight:600;white-space:nowrap;padding:4px 8px}
td.scad .et{font-family:'Inter Tight',sans-serif;font-weight:500;font-size:var(--fs-micro);opacity:.85}
td.scad.danger{background:#C0392B;color:#fff;border-radius:5px}
td.scad.warn{background:#FBF1DC;color:#7a4e0c}
td.scad.ok{background:#E3F5EC;color:var(--ok)}

/* metodo izeos: via di mezzo fra tabella e scheda */
.mt-testa{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:14px;
  display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.mt-avanz{display:flex;align-items:center;gap:10px;flex:1;min-width:220px}
.mt-bar{flex:1;height:9px;background:var(--soft);border-radius:99px;overflow:hidden}
.mt-bar i{display:block;height:100%;border-radius:99px;transition:width .4s}
.mt-perc{font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-testo-s);min-width:44px;text-align:right}
.mt-numeri{display:flex;gap:16px;flex-wrap:wrap;font-size:var(--fs-secondario);color:var(--muted)}
.mt-numeri b{font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-testo-s);color:var(--ink)}
.mt-numeri .rit b{color:var(--danger)}

tr.mt-fase td{background:linear-gradient(90deg,#E2E6F0,#F4F6FB);padding:9px 12px}
tr.mt-fase .n{display:inline-flex;width:20px;height:20px;border-radius:6px;background:var(--navy);color:#fff;
  align-items:center;justify-content:center;font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-micro);margin-right:9px}
tr.mt-fase .t{font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-piccolo);letter-spacing:.05em;
  text-transform:uppercase;color:#333E6B;vertical-align:middle}
tr.mt-fase .mini-bar{display:inline-block;width:70px;height:6px;background:#fff;border-radius:99px;
  overflow:hidden;margin:0 10px;vertical-align:middle}
tr.mt-fase .mini-bar i{display:block;height:100%}
tr.mt-fase .c{font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-piccolo);color:var(--muted)}
tr.mt-fase .r{color:var(--danger);font-size:var(--fs-piccolo);font-weight:600;margin-left:10px}
table.bp.mt tr.bp-r:hover td{background:#F8F9FD}
@media (max-width:900px){
  .mt-testa{flex-direction:column;align-items:stretch;gap:12px}
  tr.mt-fase .mini-bar{display:none}
}

/* ---------- costruzione del programma ---------- */
.ses-blocco{padding:0;overflow:hidden}
.ses-testa{display:flex;align-items:center;gap:6px;padding:10px 12px;background:#F4F6FB;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ses-testa .cel{background:#fff;border-color:var(--line)}
.cel.ora{width:96px;font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-piccolo)}
.cel.sala{width:150px;font-size:var(--fs-secondario)}
.cel.titolo-ses{flex:1;min-width:200px;font-family:Montserrat,sans-serif;font-weight:600;font-size:var(--fs-testo-s)}
.ses-testa .fine{font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-piccolo);color:var(--muted);white-space:nowrap}
.ses-sotto{display:flex;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--soft);flex-wrap:wrap}
.ses-sotto form{margin:0}
.cel.mod{min-width:190px;height:auto;min-height:34px;max-height:70px;overflow-y:auto;font-size:var(--fs-piccolo);background:#fff;border-color:var(--line)}
table.prog{width:100%;min-width:0}
table.prog td{padding:1px 6px;border-bottom:1px solid #F4F6FB}
table.prog .ora-col{width:56px;font-size:var(--fs-piccolo);font-weight:700;color:var(--area);padding-left:12px}
table.prog tr.bp-r:hover td{background:#F8F9FD}
.incolla{border-top:1px solid var(--soft);padding:10px 12px;background:#FFFFFF}
.incolla summary{cursor:pointer;color:var(--area);font-weight:600;font-size:var(--fs-secondario)}
.incolla textarea{width:100%;border:1.5px solid var(--line);border-radius:10px;padding:10px;
  font:13.5px/1.5 ui-monospace,Menlo,monospace;background:#fff}
@media (max-width:900px){
  .ses-testa{gap:5px}.cel.titolo-ses{min-width:100%;order:-1}
  table.prog .ora-col{width:44px;padding-left:6px}
}
/* programma: la barra dello stato, sempre in cima al costruttore */
.prog-barra{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:var(--fs-secondario)}
.prog-barra .misura b{font-family:Montserrat,sans-serif;font-size:var(--fs-testo-s);color:var(--area)}
.prog-barra .manca{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip-manca{display:inline-block;padding:4px 10px;border-radius:99px;background:#FFF4E2;color:#8A5A00;
  font-size:var(--fs-piccolo);font-weight:600;text-decoration:none;border:1px solid #F0DCBA;white-space:nowrap}
.chip-manca:hover{background:#FBE8CB}
.chip-manca.on{background:var(--area);color:#fff;border-color:var(--area)}
.chip-ok{font-size:var(--fs-piccolo);color:#1C7C54;font-weight:600}
.prog-barra .salvato{margin-left:auto;font-size:var(--fs-piccolo);color:#1C7C54;font-weight:600}
.prog-barra .salvato.male{color:var(--danger,#C0392B)}
.aiuto-q{border:1px solid var(--line);background:#fff;color:var(--muted);width:18px;height:18px;border-radius:99px;
  font-size:var(--fs-micro);line-height:1;cursor:pointer;padding:0;margin-left:4px;vertical-align:middle}
.aiuto-t{display:block;margin-top:6px;font-size:var(--fs-piccolo);color:var(--muted);max-width:640px;line-height:1.55}
.aiuto-t[hidden]{display:none}
/* le giornate */
.giornata{margin-bottom:22px}
.g-testa{display:flex;align-items:baseline;gap:10px;margin:0 0 10px}
.g-testa h2{margin:0;font-size:var(--fs-testo);font-family:Montserrat,sans-serif}
.nuova-ses-riga{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:#FFFFFF;border:1.5px dashed #D7DDEE;
  border-radius:12px;padding:9px 12px;margin:0}
.nuova-ses-riga .cel{background:#fff}
.nuova-giornata{padding:14px 16px}
.nuova-giornata summary{cursor:pointer;color:var(--area);font-weight:700;font-family:Montserrat,sans-serif;font-size:var(--fs-testo-s)}
table.prog tr.evidenzia td{background:#FFF8EC}
/* importazione a passi */
.crumb-imp{margin-bottom:10px;font-size:var(--fs-piccolo)}
.tit-imp{margin:0 0 14px;font-size:var(--fs-titoletto);font-family:Montserrat,sans-serif}
.scelte-imp{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
.scelta{display:flex;flex-direction:column;align-items:flex-start;background:#fff;border:1.5px solid var(--line);
  border-radius:14px;padding:20px;text-decoration:none;color:inherit}
.scelta .vai{margin-top:auto}
.scelta:hover{border-color:var(--area);box-shadow:0 6px 20px rgba(6,14,208,.07)}
.scelta .tag{display:inline-block;background:var(--soft);color:var(--area);font-size:var(--fs-micro);font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:99px;margin-bottom:8px}
.scelta h3{margin:0 0 6px;font-size:var(--fs-titoletto)}
.scelta p{margin:0 0 12px;font-size:var(--fs-secondario);color:var(--muted);line-height:1.55}
.scelta .vai{color:var(--area);font-weight:600;font-size:var(--fs-secondario)}
.scelta-dove{display:flex;flex-direction:column;gap:8px}
.scelta-dove .voce{display:flex;align-items:center;gap:8px;margin:0;font-weight:400;font-size:var(--fs-secondario);cursor:pointer}
.scelta-dove .voce input{width:auto;margin:0;flex:none}
@media (max-width:700px){
  .scelte-imp{grid-template-columns:1fr}
  .prog-barra{gap:8px}
  .prog-barra .salvato{margin-left:0}
  .nuova-ses-riga .cel.titolo-ses{min-width:100%;order:-1}
}
/* programma: vista d'insieme */
.sino-p{display:flex;gap:10px;overflow-x:auto}
.col-sala{flex:1;min-width:190px}
.col-sala .h{background:var(--area);color:#fff;border-radius:8px;padding:6px 10px;font-family:Montserrat,sans-serif;
  font-size:var(--fs-micro);font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-align:center;margin-bottom:8px}
.blocco-s{background:#F4F6FB;border-left:3px solid var(--area);border-radius:8px;padding:9px 11px;margin-bottom:7px}
.blocco-s .o{font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-piccolo);color:var(--muted);font-weight:600}
.blocco-s .t{font-size:var(--fs-secondario);font-weight:600;line-height:1.25;margin:2px 0}
.blocco-s .n{font-size:var(--fs-piccolo);color:var(--muted)}
.incolla-tutto{padding:14px 16px}
.incolla-tutto summary{cursor:pointer;color:var(--area);font-weight:700;font-family:Montserrat,sans-serif;font-size:var(--fs-testo-s)}
.incolla-tutto code{background:var(--soft);border-radius:4px;padding:1px 5px;font-size:var(--fs-piccolo)}
textarea.export{width:100%;border:1.5px solid var(--line);border-radius:10px;padding:12px;
  font:13px/1.55 ui-monospace,Menlo,monospace;background:#FFFFFF;color:var(--ink)}
.badge.rosso{background:var(--danger)}
tr.av-rosso td{background:#FDF1EF}
tr.av-giallo td{background:#FDF8EC}

/* ---------- home pubblica: tre porte e basta ---------- */

/* ---------- menu in modalità evento ---------- */
.ev-ctx{background:rgba(74,85,120,.22);border:1px solid rgba(74,85,120,.46);border-radius:12px;
  padding:12px 13px;margin:6px 0 4px}
.ev-et{font-family:Montserrat,sans-serif;font-size:var(--fs-micro);font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:#8FB4FF}
.ev-nome{font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-testo-s);line-height:1.25;color:#fff;margin:4px 0 2px}
.ev-data{font-size:var(--fs-piccolo);color:#9AA3CE}
.ev-cambia{display:inline-block;margin-top:8px;font-size:var(--fs-piccolo);color:#8FB4FF;font-weight:600}
.ev-cambia:hover{color:#fff}
.mod-scelta{display:flex;gap:9px;align-items:flex-start;background:#fff;border:1.5px solid var(--line);
  border-radius:10px;padding:11px 12px;cursor:pointer;font-weight:400;margin:0}
.mod-scelta:hover{border-color:var(--area)}
.mod-scelta input{margin-top:2px}
.mod-scelta b{display:block;font-family:Montserrat,sans-serif;font-size:var(--fs-secondario)}
.mod-scelta i{font-size:var(--fs-piccolo);color:var(--muted);font-style:normal}
.mod-scelta.fisso{background:var(--soft);cursor:default}
aside .ev-voce > a:first-child{line-height:1.25;padding-top:8px;padding-bottom:8px}
aside .ev-voce .d{display:block;font-size:var(--fs-micro);color:#7E88BE;font-family:ui-monospace,Menlo,monospace}
aside .ev-voce > a.on .d{color:rgba(255,255,255,.8)}

/* ---------- gruppi del menu richiudibili ---------- */
.nav-gruppo{margin-bottom:2px}
.nav-gruppo > summary{list-style:none;cursor:pointer;position:relative;padding-right:24px}
.nav-gruppo > summary::-webkit-details-marker{display:none}
.nav-gruppo > summary:after{content:'';position:absolute;right:9px;top:50%;width:5px;height:5px;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:translateY(-70%) rotate(45deg);opacity:.7;transition:transform .18s}
.nav-gruppo[open] > summary:after{transform:translateY(-30%) rotate(225deg)}
.nav-gruppo > summary:hover{filter:brightness(1.25)}
.nav-gruppo[open] > summary{margin-bottom:6px}

/* ---------- pagine pubbliche su telefono ---------- */
@media (max-width:700px){

  /* barra in alto: le voci vanno a capo invece di scorrere fuori schermo.
     Scorrendo, le ultime due non si vedevano e nessuno sapeva che c'erano. */
  .topnav .in a{white-space:nowrap;font-size:var(--fs-secondario);padding:8px 10px}
  /* portale faculty: le schede respirano */
  .g2>.panel,.g3>.panel{margin-bottom:14px}
  .panel+.panel{margin-top:14px}
  .g2,.g3{gap:14px}
}
@media (max-width:700px){
  .schede{gap:16px!important}
  .scheda{padding:20px 18px!important;margin-bottom:0}
  .scheda .vai{display:inline-block;background:var(--soft);border-radius:99px;padding:8px 14px;margin-top:10px}
  .occhiello{margin-top:30px!important}
}

/* ---------- area faculty: poche parole, molte icone ---------- */
.pf-et{font-family:Montserrat,sans-serif;font-size:var(--fs-micro);font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin:0 0 10px}

.pf-nota{font-size:var(--fs-piccolo);color:var(--muted);margin-top:6px}
.pf-indietro{font-size:var(--fs-secondario);font-weight:600;color:var(--blu)}

/* schede più grandi e respirate */

/* riquadro della società nella scheda evento */

.spunta-soc{display:flex;gap:11px;align-items:flex-start;margin:14px 0 0;padding:12px 14px;
  background:#fff;border:1.5px solid var(--line);border-radius:11px;font-weight:400;cursor:pointer}
.spunta-soc:hover{border-color:var(--area)}
.spunta-soc input{width:auto;margin:2px 0 0;flex:none}
.spunta-soc b{display:block;font-family:Montserrat,sans-serif;font-size:var(--fs-testo-s)}
.spunta-soc i{display:block;font-style:normal;font-size:var(--fs-piccolo);color:var(--muted);margin-top:2px}

/* ---------- messaggi interni ---------- */
.chat-guscio{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}
.chat-elenco{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.chat-nuovo{padding:12px 14px;border-bottom:1px solid var(--soft)}
.chat-nuovo summary{cursor:pointer;color:var(--area);font-weight:600;font-size:var(--fs-secondario)}
.chat-nuovo .form{margin-top:10px}
.chat-nuovo select,.chat-nuovo input{width:100%}
.chat-voce{display:flex;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--soft);color:inherit;text-decoration:none}
.chat-voce:hover{background:var(--soft);text-decoration:none}
.chat-voce.on{background:#EEF1F8;box-shadow:inset 3px 0 0 var(--area)}
.chat-voce .ic{width:34px;height:34px;flex:none;border-radius:10px;background:var(--soft);color:var(--area);
  display:flex;align-items:center;justify-content:center;font-size:var(--fs-testo-s)}
.chat-voce .tx{flex:1;min-width:0}
.chat-voce b{display:block;font-size:var(--fs-secondario);font-family:Montserrat,sans-serif}
.chat-voce i{display:block;font-style:normal;font-size:var(--fs-piccolo);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-corpo{background:#fff;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;min-height:420px}
.chat-testa{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--soft)}
.chat-flusso{flex:1;padding:14px 16px;overflow-y:auto;max-height:52vh}
.chat-giorno{text-align:center;font-size:var(--fs-piccolo);color:var(--muted);margin:10px 0}
.chat-msg{display:flex;margin-bottom:8px}
.chat-msg.mio{justify-content:flex-end}
.chat-msg .bolla{max-width:72%;background:var(--soft);border-radius:14px;padding:9px 13px;font-size:var(--fs-testo-s);line-height:1.4}
.chat-msg.mio .bolla{background:var(--area);color:#fff}
.chat-msg .chi{font-size:var(--fs-piccolo);font-weight:700;color:var(--area);margin-bottom:2px}
.chat-msg .ora{font-size:var(--fs-micro);opacity:.6;margin-top:3px;text-align:right}
.chat-msg .ora .x{color:inherit}
.chat-scrivi{display:flex;gap:10px;padding:12px 16px;border-top:1px solid var(--soft);align-items:flex-end}
.chat-scrivi textarea{flex:1;border:1.5px solid var(--line);border-radius:11px;padding:10px;font:14.5px/1.5 'Inter Tight',sans-serif;resize:vertical}
.chat-membri{padding:12px 16px;border-top:1px solid var(--soft)}
.chat-membri summary{cursor:pointer;color:var(--area);font-weight:600;font-size:var(--fs-secondario)}
.notif-ic{display:inline-flex;width:30px;height:30px;border-radius:9px;background:var(--soft);color:var(--area);
  align-items:center;justify-content:center;font-size:var(--fs-secondario)}
@media (max-width:900px){.chat-guscio{grid-template-columns:1fr}.chat-msg .bolla{max-width:86%}.chat-flusso{max-height:none}}
.spunta-blu{display:inline-flex;align-items:center;gap:5px;background:#E2E6F0;color:#0B57D0;border:1px solid #BBD2F7;
  border-radius:99px;padding:3px 10px;font-size:var(--fs-piccolo);font-weight:700}
.spunta-blu.piccola{padding:1px 6px;font-size:var(--fs-micro);margin-left:5px}
tr.clic{cursor:pointer}
tr.clic:hover td{background:#F8F9FD}

/* creazione rapida di un relatore dal programma */
.riq-nuovo-rel{position:fixed;inset:0;background:rgba(10,13,49,.45);z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}
.riq-nuovo-rel[hidden]{display:none}
.riq-nuovo-rel .dentro{background:#fff;border-radius:16px;padding:24px;max-width:560px;width:100%;box-shadow:0 24px 60px rgba(10,13,49,.3)}
.riq-nuovo-rel h3{margin-top:0}
.sel-rel{min-width:170px}
.mini-link{display:inline-block;font-size:var(--fs-piccolo);color:var(--area);font-weight:600;margin-top:2px}

/* ---------- ricerca globale ---------- */
.cerca-barra{display:flex;gap:8px;margin:0 0 18px;max-width:720px}
.cerca-barra input{flex:1;border:1.5px solid var(--line);border-radius:11px;padding:10px 14px;
  font:14.5px/1.4 'Inter Tight',sans-serif;background:#fff}
.cerca-barra input:focus{outline:0;border-color:var(--area);box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}
.cerca-barra button{border:0;background:var(--area);color:#fff;border-radius:11px;padding:0 18px;
  font:600 14px 'Inter Tight',sans-serif;cursor:pointer}
.cerca-grande{display:flex;gap:10px;margin-bottom:18px}
.cerca-grande input{flex:1;border:1.5px solid var(--line);border-radius:13px;padding:14px 18px;font-size:var(--fs-testo);background:#fff}
.cerca-grande input:focus{outline:0;border-color:var(--area);box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}
@media (max-width:700px){.cerca-barra{margin-bottom:12px}.cerca-barra input{font-size:var(--fs-testo)}}
.mail-anteprima{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:16px 18px;
  font-size:var(--fs-testo-s);line-height:1.55;white-space:normal}
.mail-anteprima .ogg{font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-testo-s);margin-bottom:10px;
  padding-bottom:8px;border-bottom:1px solid var(--line)}

/* ---------- priorità in apertura ---------- */
.priorita{margin:0 0 22px}

.pallino{width:9px;height:9px;border-radius:50%;display:inline-block}
.pallino.danger{background:var(--danger)}
.pallino.warn{background:var(--warn)}
.pri-riga{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:9px 0;
  border-bottom:1px solid var(--soft);color:inherit;text-decoration:none}
.pri-riga:last-of-type{border-bottom:0}
.pri-riga:hover{text-decoration:none;background:#F8F9FD}
.pri-riga .tx{min-width:0}
.pri-riga b{display:block;font-size:var(--fs-testo-s);font-family:Montserrat,sans-serif;font-weight:600}
.pri-riga i{display:block;font-style:normal;font-size:var(--fs-piccolo);color:var(--muted)}
.pri-riga .qn{flex:none;font-size:var(--fs-piccolo);font-weight:700;color:var(--danger);white-space:nowrap}

.pri-altre{display:inline-block;margin-top:8px;font-size:var(--fs-piccolo);font-weight:600;color:var(--area)}
/* tabella adempimenti */
.adem tr td{vertical-align:middle}
.adem .conto{font-family:ui-monospace,Menlo,monospace;font-weight:700}
.adem .conto.rosso{color:var(--danger)}
.adem .conto.giallo{color:#9A6A12}
/* comunicazioni: su telefono niente affiancamenti e testo che non sborda */
.mail-anteprima{overflow-wrap:anywhere;word-break:break-word}
@media (max-width:900px){
  .g21{grid-template-columns:1fr}
  .mail-anteprima{font-size:var(--fs-secondario);padding:12px 14px}
  textarea{max-width:100%}
  .cerca-grande{flex-direction:column}
  .cerca-grande input{font-size:var(--fs-testo)}
}
/* comunicazioni su telefono: le tabelle dei destinatari e delle variabili stanno strette */
@media (max-width:700px){
  .pag-comunicazioni .panel > table td,
  .pag-comunicazioni .panel > form > table td{min-width:0}
  .pag-comunicazioni .panel > table td:first-child,
  .pag-comunicazioni .panel > form > table td:first-child{min-width:0}
  .pag-comunicazioni table{width:100%;table-layout:fixed}
  .pag-comunicazioni table td{overflow-wrap:anywhere}
  .pag-comunicazioni code{font-size:var(--fs-piccolo);overflow-wrap:anywhere}
}

/* collegamento fisso alla pagina principale, sempre in cima al menu */
/* casa accanto al logo: un simbolo e il numero degli avvisi rossi */
.brand-casa{margin-left:auto;color:#8A93BE;font-size:var(--fs-testo);text-decoration:none;display:inline-flex;align-items:center;gap:5px;
  padding:4px 6px;border-radius:8px}
.brand-casa:hover{color:#fff;background:rgba(255,255,255,.08);text-decoration:none}
.brand-campana{display:inline-flex;align-items:center;text-decoration:none;padding:4px 2px;border-radius:8px}
.brand-campana .n{background:var(--danger,#C0392B);color:#fff;border-radius:20px;font-size:var(--fs-micro);padding:1px 6px;font-weight:700;font-family:Montserrat,sans-serif;line-height:1.4}
.brand-campana:hover{text-decoration:none;filter:brightness(1.15)}
.voce-casa{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:11px 13px;border-radius:11px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:#fff;text-decoration:none;
  font-family:Montserrat,sans-serif;font-weight:600;font-size:var(--fs-secondario);transition:.15s}
.voce-casa:hover{background:rgba(255,255,255,.14);text-decoration:none;color:#fff}
.voce-casa.on{background:var(--blu);border-color:var(--blu)}
.voce-casa .ic{font-size:var(--fs-testo);opacity:.85}
.voce-casa .badge{margin-left:auto}
/* scheda del professionista: tabelle strette anche sul telefono */
@media (max-width:700px){
  .pag-persone .panel > table{width:100%;table-layout:fixed}
  .pag-persone .panel > table td,
  .pag-persone .panel > table th{min-width:0;overflow-wrap:anywhere;padding:8px 6px;font-size:var(--fs-piccolo)}
  .pag-persone .panel > table td:first-child{min-width:0;width:88px}
  .pag-persone .panel > table th:nth-child(3),
  .pag-persone .panel > table td:nth-child(3){width:76px}
  .pag-persone .panel > table th:nth-child(4),
  .pag-persone .panel > table td:nth-child(4){width:46px}
  .pag-persone table.kv td{width:auto}
}
.fuori-evento{font-family:Montserrat,sans-serif;font-size:var(--fs-micro);font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.42);margin:20px 0 8px;padding-top:16px;
  border-top:1px solid rgba(255,255,255,.12)}
.modelli-pronti{margin-top:10px;padding:10px 12px;background:var(--soft);border-radius:10px;font-size:var(--fs-piccolo);line-height:1.7}
.modelli-pronti a{font-weight:600}

/* sede e sale nella scheda evento */

.sale-scelta{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:8px}
.sala-ck{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1.5px solid var(--line);
  border-radius:10px;padding:10px 12px;font-weight:400;cursor:pointer;margin:0}
.sala-ck:hover{border-color:var(--area)}
.sala-ck input{width:auto;margin:2px 0 0;flex:none}
.sala-ck b{display:block;font-family:Montserrat,sans-serif;font-size:var(--fs-secondario)}
.sala-ck i{display:block;font-style:normal;font-size:var(--fs-piccolo);color:var(--muted)}
@media (max-width:700px){.sale-scelta{grid-template-columns:1fr}}
@media (max-width:700px){
  .pag-sedi .panel > table{width:100%;table-layout:fixed}
  .pag-sedi .panel > table td,.pag-sedi .panel > table th{min-width:0;overflow-wrap:anywhere;padding:8px 6px;font-size:var(--fs-piccolo)}
  .pag-sedi .panel > table td:first-child{min-width:0}
  .pag-sedi .row{flex-wrap:wrap}
  .pag-sedi .row label{width:100%}
}

/* check list dell'evento */
table.check td{vertical-align:top;padding:9px 6px}
table.check tr.ritardo td:first-child{box-shadow:inset 3px 0 0 var(--danger)}
table.check tr.vicina td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
table.check tr.chiusa{opacity:.62}
table.check .rit{color:var(--danger);font-weight:700}
.pil{border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:4px 10px;font-size:var(--fs-piccolo);
  font-family:Montserrat,sans-serif;font-weight:600;color:var(--muted);cursor:pointer;margin:0 3px 3px 0}
.pil:hover{border-color:var(--area)}
.pil.on{background:var(--navy);border-color:var(--navy);color:#fff}
.pil.on.ok{background:#1C7C54;border-color:#1C7C54}
.pil.on.warn{background:#B0761A;border-color:#B0761A}
.allega{display:inline-block;margin-left:4px}
.allega summary{cursor:pointer;font-size:var(--fs-piccolo)}
.allega form{margin-top:6px}
.barra-av{position:relative;height:10px;background:var(--soft);border-radius:99px;margin:0 0 18px;max-width:520px}
.barra-av .dentro{height:100%;background:var(--area);border-radius:99px;transition:width .3s}
.barra-av{max-width:460px;margin-right:52px}
.barra-av span{position:absolute;right:-46px;top:-5px;font-size:var(--fs-piccolo);font-weight:700;color:var(--muted)}
@media (max-width:700px){.barra-av{max-width:calc(100% - 52px)}}
@media (max-width:700px){
  .pag-checklist .panel{padding:12px 10px}
  .pag-checklist table.check{table-layout:fixed;width:100%}
  .pag-checklist .cel{max-width:100%}
  .pag-checklist .pil{padding:3px 7px;font-size:var(--fs-micro);margin:0 2px 2px 0}
  .pag-checklist table.check th:nth-child(6),.pag-checklist table.check td:nth-child(6){width:54px}
  .pag-checklist input,.pag-checklist select{max-width:100%;box-sizing:border-box}
  .pag-checklist table.check td > input{width:100%}
  .pag-checklist table.check td,.pag-checklist table.check th{min-width:0;font-size:var(--fs-piccolo);padding:7px 4px;overflow-wrap:anywhere}
  .pag-checklist table.check th:nth-child(3),.pag-checklist table.check td:nth-child(3),
  .pag-checklist table.check th:nth-child(5),.pag-checklist table.check td:nth-child(5){display:none}
}
.metodo-scelta i{display:block;font-style:normal;font-size:var(--fs-piccolo);color:var(--muted);margin-top:3px}
.metodo-scelta u{display:inline-block;text-decoration:none;font-size:var(--fs-piccolo);color:var(--area);font-weight:700;margin-top:4px}

/* pernottamenti: barre delle notti */
.notti-graf{display:flex;gap:10px;align-items:flex-end;padding:14px 0 0;overflow-x:auto}
.notti-graf .col{text-align:center;min-width:52px}
.notti-graf .barra{background:var(--area);border-radius:7px 7px 0 0;position:relative;display:flex;align-items:flex-start;justify-content:center}
.notti-graf .barra span{color:#fff;font-size:var(--fs-piccolo);font-weight:700;margin-top:4px}
.notti-graf .et{font-size:var(--fs-piccolo);color:var(--muted);margin-top:6px;line-height:1.25}
table.pern td{vertical-align:top}
@media (max-width:700px){
  .pag-pernotti table.pern{table-layout:fixed;width:100%}
  .pag-pernotti table.pern td,.pag-pernotti table.pern th{min-width:0;font-size:var(--fs-piccolo);padding:7px 4px;overflow-wrap:anywhere}
  .pag-pernotti table.pern th:nth-child(5),.pag-pernotti table.pern td:nth-child(5),
  .pag-pernotti table.pern th:nth-child(6),.pag-pernotti table.pern td:nth-child(6){display:none}
  .pag-pernotti input,.pag-pernotti select{max-width:100%;box-sizing:border-box}
}
.sem{font-size:var(--fs-testo-s);line-height:1}
.sem.ok{color:#1C7C54}
.sem.warn{color:#B0761A}
.sem.danger{color:var(--danger)}
.sem.vuoto{color:#C9CEE0}
.bar.bar2{display:flex;overflow:hidden}
.bar.bar2 i{display:block;height:100%}
.bar.bar2 i.app{background:#1C7C54}
.bar.bar2 i.ric{background:#E0A63C}

/* calendario mensile */

.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}

.cal-g{min-height:92px;border:1px solid var(--line);border-radius:10px;padding:6px;background:#fff}
.cal-g.vuoto{border:0;background:transparent}
.cal-g.we{background:#F8F9FD}
.cal-g.oggi{border-color:var(--area);box-shadow:0 0 0 2px rgba(var(--alone,6,14,208),.12)}
.cal-g.pieno{background:#F8F9FD}
.cal-g .n{font-size:var(--fs-piccolo);font-weight:700;color:var(--muted);margin-bottom:4px}

@media (max-width:700px){
  .cal{gap:3px}
  .cal-g{min-height:62px;padding:4px;border-radius:8px}

}

/* ---------- calendario mensile ---------- */
.mese-testa{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.mese-testa b{font-family:Montserrat,sans-serif;font-size:var(--fs-titoletto)}
.mese-griglia{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:14px}
.mese-int{font-family:Montserrat,sans-serif;font-size:var(--fs-micro);font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);text-align:center;padding:4px 0}
.mese-vuoto{min-height:96px}
.mese-g{min-height:96px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:7px 8px}
.mese-g.we{background:#F8F9FD}
.mese-g.pieno{border-color:#C9D2F0}
.mese-g.oggi{border:2px solid var(--area)}
.mese-g .n{font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-piccolo);color:var(--muted);margin-bottom:4px}
.mese-g.oggi .n{color:var(--area)}
.mese-ev{display:flex;width:100%;box-sizing:border-box;min-width:0;align-items:center;gap:5px;
  font-size:var(--fs-piccolo);line-height:1.4;color:var(--navy);text-decoration:none;margin-bottom:3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--soft);border-radius:6px;padding:2px 5px}
.mese-ev:hover{text-decoration:underline}
.pall{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block;background:#9AA3BD}
.p-izeos .pall,i.pall.p-izeos{background:#060ED0}
.p-hostess .pall,i.pall.p-hostess{background:#1C7C54}
.p-nessuno .pall,i.pall.p-nessuno{background:#B0761A}
.p-nd .pall,i.pall.p-nd{background:#9AA3BD}
.mese-piu{font-size:var(--fs-micro);color:var(--muted);font-weight:700}
.mese-legenda{display:flex;gap:18px;flex-wrap:wrap;font-size:var(--fs-piccolo);color:var(--muted);margin-bottom:18px}
.mese-legenda i{margin-right:5px}
@media (max-width:700px){
  .mese-griglia{gap:3px}
  .mese-g,.mese-vuoto{min-height:64px;padding:4px 5px;border-radius:8px}
  .mese-ev{font-size:0;gap:0}
  .mese-ev .pall{width:7px;height:7px;margin-right:2px}
  .mese-g .n{font-size:var(--fs-micro)}
  .mese-int{font-size:var(--fs-micro)}
}

/* pernottamenti */
.notti-graf{display:flex;gap:10px;align-items:flex-end;padding:14px 0 0;overflow-x:auto}
.notte{text-align:center;min-width:46px}
.notte .barra{background:var(--area);border-radius:6px 6px 0 0;position:relative;display:flex;align-items:flex-start;justify-content:center}
.notte .barra span{color:#fff;font-size:var(--fs-piccolo);font-weight:700;margin-top:3px}
.notte .gg{font-size:var(--fs-piccolo);color:var(--muted);margin-top:5px}
.notte .gg i{display:block;font-style:normal;font-size:var(--fs-micro);opacity:.7}
table.pern td{vertical-align:top;padding:9px 6px}
table.pern tr.chiusa{opacity:.55}
@media (max-width:700px){
  .pag-pernotti table.pern{table-layout:fixed;width:100%}
  .pag-pernotti table.pern td,.pag-pernotti table.pern th{min-width:0;font-size:var(--fs-piccolo);padding:6px 4px;overflow-wrap:anywhere}
  .pag-pernotti table.pern th:nth-child(4),.pag-pernotti table.pern td:nth-child(4){display:none}
  .pag-pernotti input,.pag-pernotti select{max-width:100%;box-sizing:border-box}
}

/* ---------- ricerca: aperta su schermo grande, a scomparsa sul telefono ---------- */
.cerca-guscio{margin:0 0 16px}
.cerca-guscio summary{display:none}
.cerca-guscio .cerca-barra{margin:0}
/* su schermo grande resta sempre aperta, il dettaglio non nasconde nulla */
@media (min-width:701px){ .cerca-guscio > .cerca-barra{display:flex !important} }
@media (max-width:700px){
  .cerca-guscio{margin:0 0 12px}
  .cerca-guscio summary{display:block;cursor:pointer;list-style:none;background:#fff;border:1.5px solid var(--line);
    border-radius:11px;padding:11px 14px 11px 38px;font-size:var(--fs-secondario);color:var(--muted);
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E6785' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:12px center;background-size:16px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cerca-guscio summary::-webkit-details-marker{display:none}
  .cerca-guscio[open] summary{display:none}
}

/* ---------- telefono: elenchi leggibili e comandi grandi ---------- */
@media (max-width:700px){
  main{padding:14px 12px 90px}
  .topbar{gap:8px}
  .topbar h1{font-size:var(--fs-titolo);line-height:1.25}
  .topbar .btn,.topbar form{flex:1 1 auto}
  .topbar .btn{justify-content:center;padding:11px 14px;font-size:var(--fs-secondario)}
  .riga-btn .btn,.row > .btn{min-height:42px;display:inline-flex;align-items:center}
  .panel{padding:14px 12px}
  /* tabelle di elenco: righe che respirano, colonne secondarie in grigio sotto */
  .panel > table td{padding:11px 6px;font-size:var(--fs-piccolo);vertical-align:top}
  .panel > table th{font-size:var(--fs-micro);padding:6px}
  .panel > table td b{font-size:var(--fs-secondario)}
  /* la tabella del programma e le altre larghe scorrono in orizzontale */
  .tab-scorri{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -12px;padding:0 12px}
  .tab-scorri table{min-width:620px}
  table.bp,table.prog{min-width:620px}
  .main.largo table{min-width:620px}
  /* niente doppio tocco per le tendine */
  select,input,textarea{font-size:var(--fs-testo)}
}

/* elenchi principali sul telefono: via le colonne che non servono, dati sotto al nome */
@media (max-width:700px){
  /* professionisti: contatti e affiliazione sotto al nome, non in colonna.
     11.50: solo l'ELENCO (table.elenco). Prima la regola prendeva ogni tabella della pagina, e nella scheda
     di un professionista al telefono spariva la colonna dei valori: «Email», «Telefono» senza niente accanto. */
  /* 11.54: le colonne che al telefono non servono portano la classe «el-solo-pc» (prima si contavano con
     nth-child: con la colonna della spunta davanti, sarebbe sparito il nome) */
  .pag-persone .panel > table.elenco .el-solo-pc{display:none!important}
  .pag-persone .panel > table.elenco td .sotto-mob{display:block;font-size:var(--fs-piccolo);color:var(--muted);margin-top:2px;
    overflow-wrap:anywhere}
  /* eventi: restano titolo e date; posti, quota e profili si guardano dalla scheda */
  .pag-events .panel > table th:nth-child(n+3),.pag-events .panel > table td:nth-child(n+3){display:none}
  .pag-events .panel > table th:last-child,.pag-events .panel > table td:last-child{display:table-cell;width:64px}
  /* professionisti: nome con sotto email e affiliazione, poi lo stato */
  .pag-persone .sotto-mob{font-size:var(--fs-piccolo);line-height:1.4}
  /* email e indirizzi non si spezzano a metà parola */
  .panel td{overflow-wrap:break-word;word-break:normal}
  .panel td .mono{font-size:var(--fs-piccolo)}
}
.sotto-mob{display:none}
@media (max-width:700px){
  /* nella riga dell'elenco resta solo «Apri»: il resto si fa dentro l'evento */
  .pag-events .panel > table td:last-child .btn:not(:first-child){display:none}
  .pag-events .panel > table td:last-child{white-space:nowrap}
  /* email lunghe: puntini invece di spezzare la parola a metà */
  .sotto-mob{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}
}
@media (max-width:700px){
  /* sul telefono parte chiusa: il riquadro mostra solo la riga di ricerca */
  .cerca-guscio:not([data-aperta]) > .cerca-barra{display:none}
  .cerca-guscio[open]:not([data-aperta]) > .cerca-barra{display:flex}
  .cerca-guscio[open] summary{display:none}
}

/* cruscotto: chi fa cosa */
.crus-griglia{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.crus-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.crus-card.in-ritardo{border-left:4px solid var(--danger)}
.crus-testa{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
.crus-testa b{font-family:Montserrat,sans-serif;font-size:var(--fs-testo)}
.crus-num{text-align:right}
.crus-num .n{display:block;font-family:Montserrat,sans-serif;font-weight:800;font-size:var(--fs-titolo);color:var(--area);line-height:1}
.crus-num .l{font-size:var(--fs-micro);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.crus-riass{font-size:var(--fs-piccolo);color:var(--muted);padding-bottom:8px;border-bottom:1px solid var(--soft);margin-bottom:6px}
.crus-riass .rit{color:var(--danger)}
.crus-ev{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--soft);
  color:inherit;text-decoration:none}
.crus-ev:last-child{border-bottom:0}
.crus-ev:hover{text-decoration:none;background:#F8F9FD}
.crus-ev .tx{flex:1;min-width:0}
.crus-ev b{display:block;font-size:var(--fs-secondario);font-family:Montserrat,sans-serif;font-weight:600}
.crus-ev i{display:block;font-style:normal;font-size:var(--fs-piccolo);color:var(--muted)}
@media (max-width:700px){.crus-griglia{grid-template-columns:1fr}}

/* calendario: selettore di vista, settimana e anno */
.vista-sel{display:inline-flex;background:var(--soft);border-radius:99px;padding:3px;gap:2px}
.vista-sel a{padding:6px 14px;border-radius:99px;font-size:var(--fs-piccolo);font-weight:600;color:var(--muted);text-decoration:none}
.vista-sel a.on{background:var(--area);color:#fff}
.sett-griglia{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:14px}
.sett-g{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;
  grid-template-columns:150px 1fr;gap:12px;align-items:start}
.sett-g.we{background:#F8F9FD}
.sett-g.oggi{border:2px solid var(--area)}
.sett-t b{display:block;font-family:Montserrat,sans-serif;font-size:var(--fs-testo-s);text-transform:capitalize}
.sett-t span{font-size:var(--fs-piccolo);color:var(--muted)}
.sett-libero{font-size:var(--fs-piccolo);color:var(--muted)}
.sett-ev{display:flex;gap:9px;align-items:flex-start;padding:6px 0;color:inherit;text-decoration:none}
.sett-ev:hover{text-decoration:none}
.sett-ev .pall{margin-top:5px}
.sett-ev b{display:block;font-size:var(--fs-secondario);font-family:Montserrat,sans-serif;font-weight:600}
.sett-ev i{display:block;font-style:normal;font-size:var(--fs-piccolo);color:var(--muted)}
.anno-griglia{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-bottom:14px}
.anno-m{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}
.anno-m.pieno{border-color:#C9D2F0}
.anno-t{display:flex;justify-content:space-between;align-items:baseline;font-family:Montserrat,sans-serif;
  font-weight:700;font-size:var(--fs-secondario);text-decoration:none;color:inherit;margin-bottom:7px}
.anno-t span{font-size:var(--fs-micro);color:var(--area);font-weight:700}
.anno-gg{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.anno-gg .d,.anno-gg .vuoto{aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  font-size:var(--fs-micro);border-radius:4px;color:var(--muted);text-decoration:none}
.anno-gg .d{background:var(--soft)}
.anno-gg .d.oggi{outline:2px solid var(--area)}
.anno-gg .d.p-izeos{background:#060ED0;color:#fff}
.anno-gg .d.p-hostess{background:#1C7C54;color:#fff}
.anno-gg .d.p-nessuno{background:#B0761A;color:#fff}
.anno-gg .d.p-nd{background:#9AA3BD;color:#fff}
@media (max-width:700px){
  .sett-g{grid-template-columns:1fr;gap:6px}
  .anno-griglia{grid-template-columns:1fr 1fr;gap:8px}
  .anno-m{padding:8px}
  .vista-sel a{padding:6px 11px;font-size:var(--fs-piccolo)}
}

/* ---------- scheda evento: sezioni con titolo a sinistra e campi a destra ---------- */
.scheda-ev{max-width:1180px}
.sez-form{display:grid;grid-template-columns:260px 1fr;gap:28px;background:#fff;border:1px solid var(--line);
  border-radius:16px;padding:22px 26px;margin-bottom:16px;align-items:start}
.sez-t h3{margin:0 0 6px;font-size:var(--fs-testo)}
.sez-t p{margin:0;font-size:var(--fs-piccolo);color:var(--muted);line-height:1.55}
.sez-c{display:flex;flex-direction:column;gap:14px;min-width:0}
.sez-c > label,.sez-c .g2,.sez-c .g3,.sez-c .g4{margin:0}
.sez-c label.pieno{width:100%}
.sez-c input:not([type=checkbox]):not([type=radio]),.sez-c select,.sez-c textarea{width:100%;box-sizing:border-box}
.sez-c .g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sez-c .g4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.sez-c .hint{margin-bottom:4px}
.sez-c .occhiello{margin-top:2px}
.sez-c .note{margin:0}
/* la riga Salva resta in fondo allo schermo, con un fondo pieno */
.barra-salva{position:sticky;bottom:0;background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:12px 16px;display:flex;gap:10px;z-index:5;box-shadow:0 -6px 18px rgba(10,13,49,.07);margin-top:4px}
/* i campi di una riga si allineano in basso, così le spiegazioni non li sfalsano */
.sez-c .g2,.sez-c .g3,.sez-c .g4{align-items:end}
.sez-c > label,.sez-c .g2 > label,.sez-c .g3 > label,.sez-c .g4 > label{display:flex;flex-direction:column}
/* le spunte restano in riga: casella a sinistra, testo accanto */
.sez-c label.voce,.sez-c label.sala-ck,.sez-c label.spunta-soc{display:flex;flex-direction:row;align-items:center}
.sez-c label.sala-ck,.sez-c label.spunta-soc{align-items:flex-start}
.sez-c label.voce input{width:auto;margin:0 8px 0 0;flex:none}
.sez-c label .hint{flex:1 0 auto}
.sez-c label > input,.sez-c label > select,.sez-c label > textarea{margin-top:auto}
@media (max-width:900px){
  .sez-form{grid-template-columns:1fr;gap:14px;padding:18px}
  .sez-t p{display:none}
  .sez-c .g4{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
  .sez-form{padding:16px 14px}
  .sez-c .g2,.sez-c .g4{grid-template-columns:1fr}
}

/* ---------- telefono: i campi dentro le tabelle si toccano davvero ---------- */
@media (max-width:700px){
  /* campi in linea nelle tabelle di lavoro: alti abbastanza e leggibili */
  .cel,
  .tab-scorri input,.tab-scorri select,.tab-scorri textarea,
  table.prog input,table.prog select,table.bp input,table.bp select,
  table.check input,table.check select,table.pern input,table.pern select{
    font-size:var(--fs-testo) !important;min-height:42px;padding:8px 10px;border-radius:9px}
  .cel.piccola{font-size:var(--fs-testo) !important;min-height:40px}
  /* larghezze minime: scorrendo in orizzontale si vede tutto il contenuto */
  .tab-scorri input[type=text],.tab-scorri input:not([type]),
  table.prog input:not([type=time]):not([type=date]),
  table.check input:not([type=date]),table.pern input:not([type=date]),
  table.bp input:not([type=date]){min-width:150px}
  .tab-scorri input[type=date],table.check input[type=date],table.pern input[type=date]{min-width:140px}
  .tab-scorri select,table.prog select,table.check select,table.pern select,table.bp select{min-width:130px}
  .tab-scorri input[type=file]{min-width:0;width:100%}
  /* i pulsanti dentro le righe si toccano */
  .tab-scorri .btn.sm,table.check .btn.sm,table.pern .btn.sm{min-height:38px;padding:8px 12px}
  .pil{min-height:34px;padding:6px 11px;font-size:var(--fs-piccolo)}
  /* campi larghi fuori tabella: mai sotto i 42 px */
  main input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  main select{min-height:42px}
  main textarea{font-size:var(--fs-testo);min-height:96px}
  /* griglie a quattro colonne: una sola sul telefono */
  .g4,.sez-c .g4{grid-template-columns:1fr !important}
  /* la data nella barra del calendario */
  .mese-testa input[type=date]{font-size:var(--fs-testo);min-height:42px}
}
@media (max-width:700px){
  /* le righe di campi vanno a capo invece di allargare la pagina */
  main .row{flex-wrap:wrap}
  main .row > label,main form.row > label{width:100% !important;flex:1 1 100% !important}
  main .row > .btn,main .row > button{flex:1 1 auto}
  main .row select,main .row input{width:100%}
  /* la data della ricerca nel calendario */
  .mese-testa input[type=date]{font-size:var(--fs-testo) !important;min-height:42px;width:100%}
  .mese-testa form.row{width:100%;margin-left:0 !important}
  /* aree di testo grandi: leggibili */
  main textarea{font-size:var(--fs-testo) !important}
  /* campi numerici stretti nelle tabelle: abbastanza larghi da leggersi */
  table.bp input,table.prog input[type=time],table.check input{min-width:120px}
}
/* le colonne delle griglie possono stringersi: senza questo, una tabella larga
   dentro una colonna allarga tutta la pagina */
.g2 > *,.g21 > *,.g3 > *,.g4 > *,.sez-c > *{min-width:0}
.panel{min-width:0}
.ind-abb{font-size:var(--fs-piccolo)}
@media (max-width:700px){.ind-abb{font-size:var(--fs-secondario);min-height:46px}}

/* riquadro utente in fondo al menu */
.utente-azioni{display:flex;flex-direction:column;gap:2px;margin-top:8px;padding-top:8px;
  border-top:1px solid rgba(255,255,255,.12)}
.utente-azioni a{display:block;padding:8px 10px;border-radius:8px;font-size:var(--fs-secondario);
  color:rgba(255,255,255,.82);text-decoration:none}
.utente-azioni a:hover{background:rgba(255,255,255,.10);color:#fff;text-decoration:none}
.utente-azioni a.on{background:var(--blu);color:#fff}
.utente-azioni a.esci{color:#F2A9A9}
.utente-azioni a.esci:hover{background:rgba(214,73,73,.22);color:#fff}
@media (max-width:700px){.utente-azioni a{padding:11px 10px;font-size:var(--fs-testo-s)}}

/* portale: istruzioni, rientro nell'area, cosa manca */
.pf-come{background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px 30px;margin-bottom:24px;
  opacity:0;animation:pb-su .55s .05s ease-out forwards}
.pf-come h2{margin:0 0 10px;font-size:var(--fs-titoletto)}
.pf-come ol{margin:0;padding-left:20px}
.pf-come li{font-size:var(--fs-testo-s);line-height:1.7;color:var(--navy)}
.pf-rientro{margin-top:18px;padding-top:16px;border-top:1px solid var(--soft);display:flex;
  justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap}
.pf-rientro b{display:block;font-size:var(--fs-secondario);font-family:Montserrat,sans-serif}
.pf-rientro i{display:block;font-style:normal;font-size:var(--fs-piccolo);color:var(--muted);margin-top:2px}
.pf-rientro .riga{display:flex;gap:8px;flex:1 1 520px;max-width:640px}
/* 10.54 (Pietro, 3/10: «l'email da inserire ha uno spazio molto stretto»): la casella prende la riga */
.pf-rientro input{border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;font-size:var(--fs-testo);min-width:0;flex:1;min-height:48px}
.pf-rientro button{min-height:48px;padding-left:22px;padding-right:22px}

@media (max-width:700px){
  .pf-come{padding:18px 16px}
  .pf-rientro{flex-direction:column;align-items:stretch}
  .pf-rientro .riga{flex-direction:column}
  .pf-rientro input{min-width:0;width:100%;font-size:var(--fs-testo);min-height:46px}
}
/* tabella delle notifiche nell'account */
table.avvisi-tab{width:100%;border-collapse:collapse}
table.avvisi-tab th{font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
  padding:6px 8px;border-bottom:1px solid var(--line);text-align:left}
table.avvisi-tab th.center,table.avvisi-tab td.center{text-align:center;width:120px}
table.avvisi-tab td{padding:12px 8px;border-bottom:1px solid var(--soft);vertical-align:top}
table.avvisi-tab input[type=checkbox]{width:20px;height:20px;margin:0;accent-color:var(--area)}
@media (max-width:700px){
  table.avvisi-tab{min-width:0}
  table.avvisi-tab th.center,table.avvisi-tab td.center{width:74px}
  table.avvisi-tab th{font-size:var(--fs-micro)}
  table.avvisi-tab input[type=checkbox]{width:24px;height:24px;min-height:24px}
}

/* spaziatura compatta */
.densita-compatta .panel{padding:16px 18px;margin-bottom:12px}
.densita-compatta .panel > table td{padding:7px 6px}
.densita-compatta .sez-form{padding:16px 20px;margin-bottom:12px}
.densita-compatta .topbar{margin-bottom:18px}
.densita-compatta main{padding:26px 32px 70px}
.densita-compatta .crus-card{padding:13px 15px}

/* guida per compiti */
.ricetta-testa{margin-bottom:18px}
.ricetta-testa h2{margin:0 0 6px;font-size:var(--fs-titolo)}
.ricetta-testa .quando{margin:0 0 8px;color:var(--muted);font-size:var(--fs-testo-s)}
.ricetta-testa .meta{display:flex;gap:16px;font-size:var(--fs-piccolo);color:var(--muted)}
ol.passi{list-style:none;margin:0;padding:0;counter-reset:p}
ol.passi li{display:flex;gap:16px;background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:18px 20px;margin-bottom:12px;align-items:flex-start}
ol.passi .n{flex:none;width:30px;height:30px;border-radius:50%;background:var(--area);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--fs-secondario);font-family:Montserrat,sans-serif}
ol.passi .tx{flex:1;min-width:0}
ol.passi b{font-family:Montserrat,sans-serif;font-size:var(--fs-testo-s)}
ol.passi p{margin:4px 0 10px;font-size:var(--fs-secondario);line-height:1.55;color:var(--navy)}
@media (max-width:700px){
  ol.passi li{padding:14px;gap:12px}
}

/* ================= sistema unico per le pagine pubbliche ================= */
/* una sola misura di colonna, una sola barra, un solo logo per pagina */
:root{--pub-col:1240px}
@media(min-width:1700px){:root{--pub-col:1380px}}
.topnav{background:#0A0D31;position:sticky;top:0;z-index:40;border-bottom:1px solid rgba(255,255,255,.07)}
.topnav .in{max-width:var(--pub-col);margin:0 auto;padding:0 28px;display:flex;align-items:center;gap:6px;min-height:66px}
.topnav .logo{display:flex;align-items:center;margin-right:22px}
.topnav .logo img{height:30px;width:auto}
.topnav.su-home .logo{display:none}
.topnav a{color:rgba(255,255,255,.72);text-decoration:none;font-size:var(--fs-testo-s);font-weight:600;
  padding:9px 15px;border-radius:10px;transition:.16s}
.topnav a:hover{color:#fff;background:rgba(255,255,255,.09);text-decoration:none}
.topnav a.on{color:#fff;background:rgba(255,255,255,.14)}
.topnav .destra{margin-left:auto}
.topnav .destra .riservato{font-weight:500;color:rgba(255,255,255,.6)}

/* intestazione delle pagine pubbliche: stessa altezza, stessi margini, ovunque */
.ext-hero{background:radial-gradient(900px 420px at 90% -20%,rgba(84,96,255,.32),transparent 60%),
  linear-gradient(160deg,#0A0D31 0%,#121A66 55%,#1D25A8 100%);color:#fff;
  padding:48px 0 56px;position:relative;overflow:hidden}
.ext-hero::before{display:none}
/* 10.50: il nome del congresso usciva sbiadito (Pietro): partiva trasparente per
   un'entrata animata, e se l'animazione si ferma o tarda resta grigio sul blu.
   Il titolo si vede sempre, pieno; l'entrata resta solo come piccolo movimento. */
.ext-hero h1,.ext-hero .sub{animation:pb-sale .5s ease-out both}
@keyframes pb-sale{from{transform:translateY(10px)}to{transform:none}}
.ext-hero .in{max-width:var(--pub-col);margin:0 auto;padding:0 28px;position:relative;z-index:2}
.ext-hero .who{font-size:var(--fs-piccolo);color:rgba(255,255,255,.62);margin-bottom:10px}
.ext-hero .occhiello{font-family:Montserrat,sans-serif;font-size:var(--fs-micro);font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:10px}
.ext-hero h1{font-family:Montserrat,sans-serif;font-weight:800;font-size:clamp(28px,3.6vw,40px);
  line-height:1.1;letter-spacing:-.02em;margin:0}
.ext-hero .sub{font-size:var(--fs-testo);color:rgba(255,255,255,.8);margin-top:12px;max-width:640px;line-height:1.55}
.ext-shell{max-width:var(--pub-col);margin:0 auto;padding:32px 28px 72px}

/* il marchio in home: logo e parola insieme, allineati alla base */

@media (max-width:700px){
  .topnav .in{padding:0 16px;min-height:58px;gap:2px}
  .topnav a{padding:11px 10px;font-size:var(--fs-secondario);min-height:42px;display:inline-flex;align-items:center}
  .topnav .logo{margin-right:8px}
  .topnav .logo img{height:22px}
  .ext-hero{padding:34px 0 40px}
  .ext-shell{padding:22px 16px 56px}

}

/* ---- riquadri e moduli pubblici: stessa forma ovunque ---- */
.ext-shell .panel{border-radius:22px;padding:28px 30px;margin-bottom:18px;border:1px solid var(--line)}
.ext-shell .panel h3{margin:0 0 14px;font-size:var(--fs-titoletto)}
.ext-shell .panel > .form > label,.ext-shell .panel label{margin-bottom:14px}
.ext-shell input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.ext-shell select,.ext-shell textarea{width:100%;box-sizing:border-box;min-height:46px}
.ext-shell label{display:block;margin-bottom:16px}
.ext-shell .form textarea{min-height:110px}
.ext-shell .g2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ext-shell .g2 > *{min-width:0}
.ext-shell .note{border-radius:12px}

/* le schede del portale faculty e delle aziende */

.pf-et{font-family:Montserrat,sans-serif;font-size:var(--fs-micro);font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin:26px 0 12px}

/* le linguette provider / tipo azienda */

@media (max-width:900px){.ext-shell .g2{grid-template-columns:1fr;gap:0}}

/* pagina di accesso: stessa famiglia delle altre pubbliche */
.auth-body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px;
  background:linear-gradient(135deg,#0A0D31 0%,#1B2170 58%,#2A32C4 100%)}
.auth-card{background:#fff;border-radius:20px;padding:38px 36px;max-width:420px;width:100%;
  box-shadow:0 28px 70px rgba(6,10,50,.42);animation:ing-su .5s ease-out}
/* il logo è bianco: va su fondo scuro, non schiacciato a nero */

.auth-card h1{font-family:Montserrat,sans-serif;font-size:var(--fs-titolo-g);text-align:center;margin:0 0 4px;letter-spacing:-.02em}
.auth-card > p.muted{text-align:center}
.auth-card .form input{min-height:46px}
.auth-card .btn.primary{min-height:48px;font-size:var(--fs-testo-s);border-radius:12px}
@media (max-width:700px){.auth-card{padding:28px 22px}}
/* le sigle delle schede: stessa forma per tutte */

.pf-et:first-of-type{margin-top:30px}
/* telefono: comandi grandi anche nelle pagine pubbliche */
@media (max-width:700px){
  .ext-shell a.btn,.ext-shell button,.pf-rientro .btn{min-height:46px;display:inline-flex;
    align-items:center;justify-content:center;font-size:var(--fs-testo-s)}


}

/* ================= INGRESSO ================= */
/* Blu izeos pieno, logo bianco, tre pannelli che si aprono al passaggio.
   Niente slogan: il titolo e le tre porte bastano. */
.pb-home,body.ext.pb-home{background:#0A0D31 !important}
.pb-home .piede-sito{margin-top:0}
.pb-hero{position:relative;min-height:calc(100vh - 66px);background:
  radial-gradient(1200px 600px at 85% -10%,rgba(84,96,255,.35),transparent 60%),
  linear-gradient(160deg,#0A0D31 0%,#121A66 55%,#1D25A8 100%);color:#fff;overflow:hidden;
  display:flex;align-items:center}

.pb-in{position:relative;z-index:2;max-width:var(--pub-col);margin:0 auto;padding:56px 28px 44px;width:100%}
.pb-testa{display:flex;align-items:center;gap:28px;margin-bottom:46px;flex-wrap:wrap}

.pb-hero h1{font-family:Montserrat,sans-serif;font-weight:800;font-size:clamp(40px,4.6vw,64px);line-height:.85;
  letter-spacing:-.03em;margin:0}
@keyframes pb-su{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* i pannelli delle porte: sottili di default, quello sotto il mouse si
   allarga. Quanti sono lo decide la pagina — dalla 9.39 sono quattro — e
   l'entrata è sfalsata di 0,12s l'una dall'altra: chi fa uno screenshot deve
   aspettare che finiscano, se no fotografa una porta che non c'è ancora. */
.pb-porte{display:flex;gap:14px;align-items:stretch}
.pb-porta{position:relative;flex:1 1 0;min-height:400px;display:flex;flex-direction:column;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:22px;
  padding:28px 26px 26px;color:#fff;text-decoration:none;overflow:hidden;
  transition:flex .55s cubic-bezier(.2,.8,.2,1),background .3s,border-color .3s,transform .3s;
  opacity:0;transform:translateY(24px);animation:pb-su .7s calc(.32s + var(--i) * .12s) ease-out forwards}
.pb-porte:hover .pb-porta{flex:0.85 1 0}
.pb-porte .pb-porta:hover{flex:1.7 1 0;background:#fff;color:var(--navy);border-color:#fff;text-decoration:none}

.pb-ic{width:56px;height:56px;margin:26px 0 22px;color:rgba(255,255,255,.9);transition:color .3s,transform .4s}
.pb-ic svg{width:100%;height:100%}
.pb-porta:hover .pb-ic{color:var(--blu);transform:translateY(-4px)}
.pb-chi{font-family:Montserrat,sans-serif;font-weight:800;font-size:clamp(19px,1.7vw,24px);line-height:1.25;
  letter-spacing:-.01em;margin-bottom:10px}

.pb-dett{font-size:var(--fs-secondario);line-height:1.55;color:var(--muted);margin-top:12px;max-height:0;opacity:0;overflow:hidden;
  transition:max-height .5s,opacity .4s .1s}
.pb-porta:hover .pb-dett{max-height:120px;opacity:1}
.pb-vai{margin-top:auto;padding-top:22px;display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:var(--fs-testo-s);
  color:#fff;transition:color .3s}
.pb-vai svg{width:18px;height:18px;transition:transform .3s}
.pb-porta:hover .pb-vai{color:var(--blu)}
.pb-porta:hover .pb-vai svg{transform:translateX(6px)}
/* la linea che scorre sul bordo alto */
.pb-porta::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--blu);transition:width .5s}
.pb-porta:hover::before{width:100%}

.pb-piede-hero{margin-top:34px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:var(--fs-secondario);color:rgba(255,255,255,.62);padding-top:22px;border-top:1px solid rgba(255,255,255,.12);
  opacity:0;animation:pb-su .7s .8s ease-out forwards}
.pb-piede-hero a{color:#fff;font-weight:600;text-decoration:none}
.pb-piede-hero a:hover{text-decoration:underline}

/* barra in alto: il logo si vede, e in ingresso non si ripete */
.topnav.su-home{background:transparent;position:absolute;left:0;right:0;border-bottom:0}
.topnav.su-home .logo{display:none}
.topnav.su-home .in{justify-content:flex-end;gap:2px}
.pb-home .topnav.su-home a{color:rgba(255,255,255,.72)}

@media (max-width:900px){
  .pb-porte{flex-direction:column;gap:12px}
  .pb-porta,.pb-porte:hover .pb-porta,.pb-porte .pb-porta:hover{flex:none;min-height:0}
  .pb-porta{padding:22px 20px}
  .pb-ic{width:40px;height:40px;margin:14px 0 12px}
  .pb-dett{max-height:none;opacity:1;color:rgba(255,255,255,.72)}
  .pb-porta:hover .pb-dett{color:var(--muted)}
  .pb-vai{padding-top:14px}
  .pb-hero{min-height:0}
  .pb-in{padding:44px 20px 36px}
  .pb-testa{gap:18px;margin-bottom:28px}

}
@media(prefers-reduced-motion:reduce){
  .pb-porta,.pb-piede-hero{animation:none;opacity:1;transform:none}
  .pb-porta,.pb-dett,.pb-ic,.pb-vai svg{transition:none}
}
.sez-pericolo{border-color:#F0B9B9;background:#FFF8F8}
.sez-pericolo h3{color:var(--danger)}

/* schermi grandi: le pagine pubbliche crescono con lo schermo, non restano
   un francobollo al centro */
@media(min-width:1400px){
  .ext-hero{padding:60px 0 70px}
  .ext-hero h1{font-size:clamp(36px,3.2vw,52px)}
  .ext-hero .sub{font-size:var(--fs-titoletto);max-width:760px}
  .ext-shell{padding-top:40px}
  .ext-shell .panel{padding:34px 38px}
  .ext-shell .panel h3{font-size:var(--fs-titoletto)}
  .pf-come{padding:34px 40px}
  .pf-come h2{font-size:var(--fs-titolo)}
  .pf-come li{font-size:var(--fs-testo)}

  .pf-et{font-size:var(--fs-piccolo);margin:34px 0 14px}

  .ext-shell input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.ext-shell select{min-height:50px;font-size:var(--fs-testo)}
  .ext-shell label{font-size:var(--fs-testo-s)}
  .topnav .in{min-height:72px}
  .topnav .logo img{height:32px}
  .topnav a{font-size:var(--fs-testo-s)}
}
@media(min-width:1900px){
  .ext-hero h1{font-size:56px}

}

/* ---------- sfondo delle intestazioni pubbliche: una rete di nodi che deriva ---------- */
.sfondo-rete{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.sfondo-rete svg{position:absolute;width:140%;height:140%;left:-20%;top:-20%;opacity:.55;
  animation:rete-deriva 60s linear infinite alternate}
.sfondo-rete .fascio{position:absolute;inset:-20%;background:
  conic-gradient(from 200deg at 78% 12%,rgba(120,132,255,0) 0deg,rgba(120,132,255,.22) 40deg,rgba(120,132,255,0) 80deg);
  filter:blur(28px);animation:fascio-respira 14s ease-in-out infinite alternate}
@keyframes rete-deriva{from{transform:translate(0,0) rotate(0deg)}to{transform:translate(-3%,2%) rotate(1.5deg)}}
@keyframes fascio-respira{from{opacity:.7;transform:rotate(0deg)}to{opacity:1;transform:rotate(4deg)}}
.pb-hero>.pb-in,.ext-hero>.in{position:relative;z-index:2}
@media(prefers-reduced-motion:reduce){.sfondo-rete svg,.sfondo-rete .fascio{animation:none}}

/* sponsor prospectus */
.cat-cerca{margin-bottom:14px;display:flex;align-items:center;gap:12px}
.cat-cerca input{width:100%;max-width:420px;box-sizing:border-box;padding:9px 12px;border:1.5px solid var(--line);
  border-radius:10px;font:inherit;font-size:var(--fs-secondario)}
.cat-cerca input:focus{outline:none;border-color:var(--area)}
.cat-sez[hidden]{display:none}
.cat-lista{display:flex;flex-direction:column;gap:8px}
.cat-voce{display:flex;align-items:flex-start;gap:12px;background:#fff;border:1.5px solid var(--line);border-radius:12px;
  padding:12px 14px;margin:0;font-weight:400}
.cat-voce[hidden]{display:none}
.cat-voce:hover{border-color:var(--area)}
.cat-voce.dentro{background:var(--soft);opacity:.75}
.cat-voce .sc{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:0;margin:0;cursor:pointer;font-weight:400}
.cat-voce input[type=checkbox]{width:auto;margin:3px 0 0;flex:none}
.cat-voce .tx{flex:1;min-width:0}
.cat-voce .pr{text-align:right}
.cat-voce .pr .campo{display:flex;align-items:center;gap:5px;justify-content:flex-end;
  font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:var(--fs-secondario)}
.sez-c .cat-voce .pr input{width:92px;flex:none;min-width:0;box-sizing:border-box}
.cat-voce .pr input{width:92px;text-align:right;padding:5px 7px;border:1.5px solid var(--line);border-radius:8px;
  font:inherit;font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:var(--fs-secondario)}
.cat-voce .pr input:focus{outline:none;border-color:var(--area)}
.cat-voce .pr small{display:block;margin-top:4px;font-weight:400;color:var(--muted);font-size:var(--fs-piccolo);
  font-family:'Inter Tight',sans-serif;white-space:nowrap}
.cat-voce .pr .gia{font-size:var(--fs-piccolo);color:var(--muted)}
@media (max-width:700px){
  .cat-voce{flex-direction:column;gap:8px}
  .cat-voce .pr{text-align:left;width:100%}
  .cat-voce .pr .campo{justify-content:flex-start}
  .cat-voce .pr small{white-space:normal}
}
.cat-voce b{display:block;font-family:Montserrat,sans-serif;font-size:var(--fs-secondario)}
.cat-voce i{display:block;font-style:normal;font-size:var(--fs-piccolo);color:var(--muted);margin-top:2px}
.cat-voce .pr{flex:none;font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:var(--fs-secondario);white-space:nowrap}
.cat-voce .pr small{font-weight:400;color:var(--muted);font-family:'Inter Tight',sans-serif}
table.prosp td{vertical-align:top;padding:9px 6px}
table.prosp tr.st-venduto td:first-child{box-shadow:inset 3px 0 0 #1C7C54}
table.prosp tr.st-opzionato td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
table.prosp tr.st-non_offerto{opacity:.5}
.kpi-riga{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.kpi .n{display:block;font-family:Montserrat,sans-serif;font-weight:800;font-size:var(--fs-titolo);color:var(--area);letter-spacing:-.01em}
.kpi .l{display:block;font-size:var(--fs-piccolo);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:3px}
.graf-riga{display:grid;grid-template-columns:190px 1fr 150px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--soft)}
.graf-riga .et b{display:block;font-size:var(--fs-secondario);font-family:Montserrat,sans-serif}
.graf-riga .barre{position:relative;height:16px;background:var(--soft);border-radius:99px;overflow:hidden}
.graf-riga .off{position:absolute;left:0;top:0;height:100%;background:#C9D2F0;border-radius:99px}
.graf-riga .ven{position:absolute;left:0;top:0;height:100%;background:var(--area);border-radius:99px}
.graf-riga .val{text-align:right;font-size:var(--fs-secondario)}
@media (max-width:700px){.graf-riga{grid-template-columns:1fr;gap:4px}.graf-riga .val{text-align:left}}
.az-card summary{display:flex;justify-content:space-between;align-items:center;gap:14px;cursor:pointer;list-style:none}
.az-card summary::-webkit-details-marker{display:none}
.az-card .nome b{display:block;font-family:Montserrat,sans-serif;font-size:var(--fs-testo)}
.az-card .nome i{display:block;font-style:normal;font-size:var(--fs-piccolo);color:var(--muted)}
.az-card .tot{text-align:right}
.az-card .tot b{display:block;font-family:Montserrat,sans-serif;font-size:var(--fs-titoletto);color:var(--area)}
.az-card .tot i{display:block;font-style:normal;font-size:var(--fs-piccolo);color:var(--muted)}
.az-card table{margin-top:14px}
@media (max-width:700px){
  .cat-voce{flex-wrap:wrap;padding:12px}
  .cat-voce .tx{flex:1 1 200px}
  .cat-voce .pr{flex:1 1 100%;padding-left:28px;font-size:var(--fs-piccolo)}
  .cat-voce b{font-size:var(--fs-secondario)}
}
.sez-form > *{min-width:0}
.cat-voce,.cat-voce .tx,.cat-voce b,.cat-voce i{min-width:0;overflow-wrap:anywhere}
@media (max-width:700px){.cat-voce .pr{white-space:normal}}
table.prosp{min-width:1080px;table-layout:fixed;width:100%}
table.prosp th:first-child,table.prosp td:first-child{width:auto}
table.prosp td:first-child b{font-size:var(--fs-secondario)}
table.prosp .cel{width:100%;min-height:36px;font-size:var(--fs-secondario)}
table.prosp td{padding:10px 8px}
.pag-sponsor main.largo,.pag-sponsor main{max-width:none}

/* ---------- telefono: il programma si legge in colonna ----------
   La tabella degli interventi non ci sta in larghezza e il blocco della
   sessione non la lascia scorrere: ogni riga diventa allora un blocco, con
   l'orario sopra e i campi uno sotto l'altro. Sta in fondo al foglio perché
   deve avere l'ultima parola sulle regole generali delle tabelle. */
@media (max-width:700px){
  table.prog, table.prog tbody, table.prog tr, table.prog td{display:block;width:auto !important;min-width:0 !important}
  table.prog{min-width:0 !important}
  table.prog tr{padding:10px 12px 12px;border-bottom:1px solid #F4F6FB}
  table.prog td{padding:2px 0;border:0;height:auto !important;position:static !important}
  /* 9.99: la prima colonna fissa (e la sua ombra) serve ai fogli larghi del
     business plan; nella scaletta a blocchi lasciava una striscia grigia a
     destra dell'orario. E niente sfondo al passaggio: sul telefono non c'è */
  table.prog td:first-child{box-shadow:none !important;background:transparent !important}
  table.prog tr.bp-r:hover td{background:transparent}
  table.prog .ora-col{padding:0 0 4px;font-size:var(--fs-piccolo)}
  /* sul telefono i campi devono sembrare campi: bordo sempre visibile */
  table.prog .cel{width:100% !important;min-width:0 !important;box-sizing:border-box;
    border-color:var(--line);background:#fff}
  table.prog .cel.num, table.prog .cel.num.stretta{width:110px !important;text-align:left}
  table.prog input[type=time], table.prog input[type=date]{width:100% !important;min-width:0 !important}
  table.prog .mini-link{display:inline-block;margin-top:4px}
  table.prog .bp-azioni{display:flex;gap:16px;justify-content:flex-end;margin-top:6px}
  table.prog tr.bp-nuova td.right{text-align:left}
  table.prog tr.bp-nuova td.right .btn{width:100%}
  /* la testa della sessione: titolo sopra, poi data, ora e sala in riga */
  .ses-testa .cel.data, .ses-testa .cel.ora{width:auto;flex:1 1 44%}
  .ses-testa .cel.sala{flex:1 1 100%}
}

/* ---------- controlli ---------- */
.pallino{display:inline-block;width:9px;height:9px;border-radius:99px;margin-right:7px;vertical-align:middle;flex:none}
.pallino.rosso{background:#C0392B;box-shadow:0 0 0 3px rgba(192,57,43,.16)}
.pallino.giallo{background:#D98B10;box-shadow:0 0 0 3px rgba(217,139,16,.16)}
.pallino.verde{background:#1C7C54;box-shadow:0 0 0 3px rgba(28,124,84,.16)}
.pallino.grande{width:16px;height:16px;margin:4px 0 0}
.btn.btn-ctrl{display:inline-flex;align-items:center}
.btn.btn-ctrl.rosso{border-color:#E7B4AD;color:#96271B}
.btn.btn-ctrl.giallo{border-color:#EFD6A8;color:#8A5A00}
.btn.btn-ctrl.verde{border-color:#B9DBCA;color:#14603F}
.chip-manca.grave{background:#FBE6E3;color:#96271B;border-color:#E7B4AD}
.chip-manca.grave:hover{background:#F7D5D0}
.chip-manca.grave.on{background:#C0392B;color:#fff;border-color:#C0392B}
table.prog tr.sovrapposto td{background:#FDF1EF}
table.prog tr.sovrapposto .ora-col{color:#C0392B}
.segno-conflitto{display:inline-block;margin-left:8px;font-size:var(--fs-micro);font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;color:#96271B;background:#F7D5D0;border-radius:99px;padding:2px 8px;text-decoration:none;white-space:nowrap}
.segno-conflitto:hover{background:#EFBDB6}
.ctrl-esito{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);
  border-left:4px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:20px}
.ctrl-esito.rosso{border-left-color:#C0392B}
.ctrl-esito.giallo{border-left-color:#D98B10}
.ctrl-esito.verde{border-left-color:#1C7C54}
.ctrl-esito .txt{flex:1;min-width:0}
.ctrl-esito h2{margin:0 0 6px;font-size:var(--fs-titoletto)}
.ctrl-esito p{margin:0;font-size:var(--fs-secondario);color:var(--muted);line-height:1.55;max-width:70ch}
.ctrl-esito .quando{margin-top:8px;font-size:var(--fs-piccolo)}
.ctrl-esito form{margin:0;flex:none}
.ctrl-tit{margin:22px 0 10px;font-size:var(--fs-testo-s);font-family:Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.06em}
.ctrl-voce{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);
  border-left:3px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:8px}
.ctrl-voce.bloccante{border-left-color:#C0392B}
.ctrl-voce.attenzione{border-left-color:#D98B10}
.ctrl-voce .c{flex:1;min-width:0}
.ctrl-voce h3{margin:0 0 4px;font-size:var(--fs-testo-s)}
.ctrl-voce p{margin:0;font-size:var(--fs-piccolo);color:var(--muted);line-height:1.55}
.ctrl-voce .btn{flex:none}
.cosa-guardo{margin-top:26px}
.cosa-guardo ul{margin:8px 0 10px 18px;padding:0;line-height:1.55}
.cosa-guardo li{margin-bottom:5px}
@media (max-width:700px){
  .ctrl-esito,.ctrl-voce{flex-direction:column;gap:10px}
  .ctrl-esito form .btn,.ctrl-voce .btn{width:100%}
}

/* elenco dei servizi comprati da un'azienda, dentro le tabelle riservate */
.voci-az{margin:0;padding:0;list-style:none}
.voci-az li{padding:2px 0;line-height:1.4}
.voci-az li b{font-weight:600}
.voci-az li .muted{display:block;font-size:var(--fs-piccolo)}

/* ---------- rete di sicurezza per le immagini ----------
   Un logo senza vincoli di larghezza esce dallo schermo con la sua dimensione
   naturale e allarga tutta la pagina: sul telefono la home pubblica sbordava
   per questo. Nessuna immagine può essere più larga di ciò che la contiene. */
img{max-width:100%}
.topnav .logo img,.mob-logo img,.piede-logo,.logo-box img{width:auto}

/* ---------- pernottamenti ----------
   Lo stato vuoto contiene l'azione invece di annunciarla, e le azioni che
   restano sono righe in linea come nel programma: stessa forma, stesso gesto. */
.vuoto-pern{background:#fff;border:1.5px dashed #D7DDEE;border-radius:14px;padding:26px 24px;margin-bottom:18px}
.vuoto-pern h2{margin:0 0 6px;font-size:var(--fs-titoletto)}
.vuoto-pern > p{margin:0 0 16px;font-size:var(--fs-secondario);color:var(--muted);line-height:1.55;max-width:70ch}
.azioni-pern{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.riga-aggiungi{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;background:#FFFFFF;
  border:1.5px dashed #D7DDEE;border-radius:12px;padding:12px 14px;margin:0}
.vuoto-pern .riga-aggiungi{background:var(--soft);border-style:solid;border-color:var(--line)}
.riga-aggiungi label{display:flex;flex-direction:column;gap:5px;margin:0;font-size:var(--fs-piccolo);font-weight:600;
  color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.riga-aggiungi label:first-of-type{flex:1;min-width:200px}
.riga-aggiungi input,.riga-aggiungi select{font:inherit;font-size:var(--fs-secondario);font-weight:400;color:var(--ink);
  text-transform:none;letter-spacing:0;padding:9px 11px;border:1.5px solid var(--line);border-radius:9px;background:#fff}
.riga-aggiungi input:focus,.riga-aggiungi select:focus{outline:none;border-color:var(--area)}
.riga-aggiungi input[type=date]{width:160px}
.riga-aggiungi .btn{margin-bottom:1px}
.riga-aggiungi.vuota{display:block;font-size:var(--fs-secondario);color:var(--muted)}
@media (max-width:700px){
  .riga-aggiungi{flex-direction:column;align-items:stretch}
  .riga-aggiungi label,.riga-aggiungi label:first-of-type{min-width:0;width:100%}
  .riga-aggiungi input,.riga-aggiungi select,.riga-aggiungi input[type=date],.riga-aggiungi .btn{width:100%;box-sizing:border-box}
}
/* gli stati del pernottamento stanno in riga, non incolonnati */
table.pern .stati-pern{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
table.pern .stati-pern form{margin:0}

/* sul telefono la tabella dei pernottamenti diventa una scheda per persona,
   con l'etichetta della colonna accanto al campo */
@media (max-width:700px){
  .pag-pernotti .tab-scorri{overflow:visible;margin:0;padding:0}
  table.pern, table.pern tbody, table.pern tr, table.pern td{display:block;width:auto !important;min-width:0 !important}
  table.pern{min-width:0 !important}
  table.pern tr{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:#fff}
  table.pern tr.testa{display:none}
  /* le colonne che le vecchie regole nascondevano tornano: nella scheda ci stanno */
  .pag-pernotti table.pern td:nth-child(4),.pag-pernotti table.pern td:nth-child(5),
  .pag-pernotti table.pern td:nth-child(6){display:flex !important}
  table.pern td{padding:5px 0;border:0;display:flex;align-items:center;gap:10px}
  table.pern td.chi{display:block;padding:0 0 10px;font-size:var(--fs-testo-s);border-bottom:1px solid var(--soft);margin-bottom:6px}
  table.pern td[data-et]::before{content:attr(data-et);flex:none;width:88px;font-size:var(--fs-micro);font-weight:700;
    letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
  table.pern td .cel{flex:1;min-width:0 !important;width:auto !important;border-color:var(--line);background:#fff}
  table.pern td.right{text-align:left}
  table.pern .stati-pern{flex:1}
}

/* ---------- pagine pubbliche sul telefono ----------
   La barra in alto ha quattro voci che a 390 px misurano 650: le ultime due
   finivano fuori dallo schermo, irraggiungibili. Qui va a capo su due righe,
   centrata, e resta tutto visibile e toccabile. */
@media (max-width:700px){
  .topnav .in{flex-wrap:wrap;justify-content:center;padding:8px 12px;gap:4px;min-height:0}
  .topnav .logo{flex:0 0 100%;justify-content:center;margin:2px 0 4px}
  .topnav a{font-size:var(--fs-piccolo);padding:9px 11px;min-height:40px;display:inline-flex;align-items:center}
  .topnav .destra{margin-left:0}
  .topnav.su-home .in{justify-content:center}
  /* l'intestazione blu: meno aria, titolo che non sfonda */
  .ext-hero{padding:30px 0 34px}
  .ext-hero h1{font-size:var(--fs-titolo-g);line-height:1.25}
  .ext-hero .sub{font-size:var(--fs-secondario)}
  .ext-hero .occhiello,.ext-hero .who{font-size:var(--fs-micro);letter-spacing:.1em}
  /* la pagina iniziale: la barra sta nel flusso, altrimenti la seconda riga
     di voci finisce sopra al titolo; e il marchio va sopra, non di fianco */
  .topnav.su-home{position:static;background:#0A0D31}
  .pb-hero{min-height:0}
  .pb-in{padding:22px 18px 28px}
  .pb-testa{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:26px}

  .pb-hero h1{font-size:38px;line-height:1}

  .pb-porte{gap:12px}

  /* il piede: una colonna, senza sbalzi */
  .piede-sito .in,.piede-sito .g3,.piede-sito .g4{grid-template-columns:1fr;gap:18px}
}
/* la fascia dichiarata della sessione: il trattino fra le due ore, e l'esito */
.ses-testa .tratto{color:var(--muted);font-size:var(--fs-piccolo);flex:none}
.ses-testa .fine.sfora{color:#96271B;font-weight:700}
table.prog tr.evidenzia td,.ses-blocco .fine.sfora{border-radius:6px}

/* I moderatori: pastiglie con il nome di chi modera, più una tendina che pesca
   dall'archivio. Prima era un elenco a selezione multipla alto una riga: per
   sapere chi moderava bisognava scorrerlo, e si toglieva una persona per
   sbaglio con un clic. */
.ses-sotto .mod-et{flex:none;margin:0}
.ses-sotto .mods{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1;min-width:180px}
.mod-chip{display:inline-flex;align-items:center;gap:5px;background:var(--blu-soft,#EEF1F8);
  border:1px solid var(--line);border-radius:999px;padding:2px 4px 2px 10px;font-size:var(--fs-piccolo);
  font-weight:600;color:var(--ink);line-height:1.7;max-width:100%}
.mod-chip .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mod-x{border:0;background:transparent;color:var(--muted);font-size:var(--fs-testo-s);line-height:1;
  cursor:pointer;padding:0 4px;border-radius:999px}
.mod-x:hover{background:#fff;color:#96271B}
.mod-add{border:1px dashed #D7DDEE;background:transparent;border-radius:999px;padding:3px 8px;
  font-size:var(--fs-piccolo);color:var(--muted);max-width:190px}
.mod-add:hover{border-color:var(--area);color:var(--ink);background:#fff}
.mod-add:focus{outline:0;border-style:solid;border-color:var(--area);background:#fff;
  box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}
@media (max-width:700px){
  .ses-sotto .mods{width:100%;flex:1 1 100%}
  .mod-add{max-width:100%}
}
@media (max-width:700px){
  /* da telefono la data prende la riga e le due ore stanno affiancate, così
     si leggono come una fascia; il trattino, che a capo resterebbe appeso in
     fondo alla riga sopra, sparisce */
  .ses-testa .tratto{display:none}
  .ses-testa .cel.data{flex:1 1 100%}
  .ses-testa .cel.ora{flex:1 1 calc(50% - 3px);min-width:0}
}

/* ---------- il percorso guidato dell'evento ---------- */
.pc-testa{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.pc-barra{flex:1;min-width:180px;height:9px;border-radius:99px;background:var(--soft);overflow:hidden}
.pc-barra span{display:block;height:100%;background:var(--ok);border-radius:99px;transition:width .3s}
.pc-conta{font-size:var(--fs-secondario);color:var(--muted);white-space:nowrap}
.pc-conta b{font-size:var(--fs-titoletto);color:var(--ink);font-family:Montserrat,sans-serif}
.pc-ora{flex:1 1 100%;display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:var(--fs-testo-s);
  border-top:1px solid var(--line);padding-top:14px;margin-top:2px}
.pc-ora.pc-ok{color:var(--ok);font-weight:600;border-color:var(--ok-soft)}

.pc-lista{display:flex;flex-direction:column;gap:10px}
.pc-passo{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;margin:0}
.pc-num{flex:none;width:30px;height:30px;border-radius:99px;display:flex;align-items:center;justify-content:center;
  font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-secondario);background:var(--soft);color:var(--muted)}
.pc-corpo{flex:1;min-width:0}
.pc-corpo h3{margin:0 0 3px;font-size:var(--fs-testo);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pc-corpo p{margin:0 0 10px;color:var(--muted)}
.pc-riga{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pc-nota{color:var(--warn);font-weight:600}
.pc-et{font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--muted);
  background:var(--soft);border-radius:99px;padding:3px 8px}
.pc-et.forte{color:var(--warn);background:var(--warn-soft)}

.pc-passo.fatto .pc-num{background:var(--ok-soft);color:var(--ok)}
.pc-passo.fatto h3{color:var(--muted)}
.pc-passo.dafare{border-left:3px solid var(--blu)}
.pc-passo.dafare .pc-num{background:var(--blu-soft);color:var(--blu)}
.pc-passo.bloccato{background:#FFFFFF}
.pc-passo.bloccato .pc-num{background:var(--danger-soft);color:var(--danger)}
.pc-passo.bloccato h3{color:var(--muted)}
.pc-manca{background:var(--danger-soft);border-radius:var(--r);padding:12px 14px;font-size:var(--fs-secondario)}
.pc-manca .small{margin:4px 0 10px}

/* la schermata che compare al posto di una pagina bloccata */
.blocco-passo{display:flex;gap:18px;align-items:flex-start;padding:26px 24px}
.blocco-passo .bp-segno{flex:none;width:42px;height:42px;border-radius:99px;background:var(--warn-soft);
  color:var(--warn);font-family:Montserrat,sans-serif;font-weight:800;font-size:var(--fs-titolo);
  display:flex;align-items:center;justify-content:center}
.blocco-passo h2{margin:0 0 6px;font-size:var(--fs-titolo)}
.blocco-passo p{margin:0;color:var(--muted);max-width:62ch}

/* «prima di partire»: cosa manca in archivio, prima di creare l'evento */
.prima-di{border-left:3px solid var(--warn)}
.prima-di h2{margin:0 0 6px;font-size:var(--fs-titoletto)}
.prima-di > p{color:var(--muted);margin:0 0 14px;max-width:74ch}
.pd-voce{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  border-top:1px solid var(--line);padding:12px 0}
.pd-voce .small.muted{max-width:68ch}

@media (max-width:700px){
  .pc-passo{padding:14px}
  .pc-riga .btn,.pc-manca .btn{width:100%;justify-content:center}
  .blocco-passo{flex-direction:column;padding:20px 16px}
  .pd-voce .btn{width:100%;justify-content:center}
  /* il marchio in alto era piccolo al punto da non leggersi */
  .mob-logo img{height:26px}
  .topnav .logo img{height:28px}
}
.pc-fatto{color:var(--ok);font-weight:800;font-size:var(--fs-testo-s);line-height:1}
.pc-passo.fatto .pc-num{background:var(--ok-soft);color:var(--ok)}

/* azzeramento dei dati di prova: due riquadri che devono avere l'aria di
   qualcosa che non si clicca per sbaglio */
.pulizia-uno{border-left:3px solid var(--warn)}
.pulizia-due{border-left:3px solid var(--danger)}
.pulizia-uno h3,.pulizia-due h3{margin-top:0}
.pulizia-due p{color:var(--muted)}

/* La maschera verticale: etichetta a sinistra, campo a destra, una riga per
   cosa. Serve dove si crea qualcosa da zero — lì la riga orizzontale non si
   legge, perché i campi finiscono su colonne diverse a seconda di quanto è
   lunga l'etichetta. */
.masch{display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px 20px;align-items:start}
.masch > .et{padding-top:9px;font-weight:600;font-size:var(--fs-secondario);color:var(--ink);line-height:1.25}
.masch > .cp{min-width:0}
.masch .cp input,.masch .cp select{width:100%;border:1px solid var(--line);background:#fff;border-radius:8px;
  padding:9px 11px;font:inherit;font-size:var(--fs-secondario);color:var(--ink)}
.masch .cp input:focus,.masch .cp select:focus{outline:0;border-color:var(--blu);
  box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}
.masch .cp .hint{margin:6px 0 0;font-size:var(--fs-piccolo);color:var(--muted);line-height:1.4;max-width:62ch}
.masch .cp-ore{display:flex;align-items:center;gap:8px}
.masch .cp-ore input{width:148px;font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-secondario)}
.masch .cp-ore .tratto{color:var(--muted);display:inline}
.masch .mods-form{gap:8px}
.masch .mods-form .mod-add{width:auto;max-width:240px;border:1px dashed #D7DDEE;background:transparent;
  border-radius:999px;padding:6px 12px;font-size:var(--fs-piccolo);color:var(--muted)}
.masch .mods-form .mod-add:hover{border-color:var(--blu);color:var(--ink);background:#fff}
@media (max-width:700px){
  .masch{grid-template-columns:1fr;gap:2px 0}
  .masch > .et{padding-top:14px}
  .masch > .cp{margin-bottom:6px}
  .masch .cp-ore input{width:auto;flex:1 1 0;min-width:0}
  .masch .mods-form .mod-add{max-width:100%;width:100%}
}
/* la riga rapida della nuova sessione: il trattino solo dove serve */
.nuova-ses-riga .tratto{color:var(--muted);font-size:var(--fs-piccolo);flex:none}
@media (max-width:700px){ .nuova-ses-riga .tratto{display:none} }
/* la spunta «sostituisci»: la conseguenza scritta accanto, non altrove */
.sostituisci-et{display:block;margin:14px 0;font-weight:400;background:var(--warn-soft);
  border-radius:var(--r);padding:12px 14px}
.sostituisci-et .hint{display:block;margin-top:6px;color:#7A5210;font-size:var(--fs-piccolo);line-height:1.55;max-width:76ch}

/* ---------- coerenza dell'interfaccia ---------- */
/* Un solo colore per l'azione principale, in ogni pagina. Fino alla 11.58 era il blu izeos dappertutto, mentre
   il «Cerca» in cima seguiva la sezione: due colori per i pulsanti nella stessa pagina. Dalla 11.59 (scelta di
   Pietro, regola A) dentro le pagine interne --blu È la tinta scura della sezione (layout.php,
   menu_sez_pagina): «Cerca», pulsante principale, contatore scelto, filtri e aloni hanno lo stesso colore.
   Fuori da <main> e nelle pagine senza menu --blu resta il blu izeos. */
.btn.primary{background:var(--blu);border-color:var(--blu);color:#fff}
.btn.primary:hover{background:var(--blu-scuro);border-color:var(--blu-scuro);color:#fff;filter:none}

/* Le maschere: in una riga di campi i controlli devono stare sulla stessa
   linea, sempre. Prima l'etichetta che aveva un aiuto sotto spingeva giù il
   proprio campo di trenta pixel, e la riga sembrava montata a mano. La regola:
   ogni etichetta è una colonna alta quanto la riga, l'aiuto sta sotto il testo,
   e il campo è spinto in fondo — così i campi si allineano fra loro comunque
   vada, con o senza aiuto, con l'etichetta su una riga o su due. */
.form .g2, .form .g3, .form .g4{align-items:stretch}
.form .g2 > label, .form .g3 > label, .form .g4 > label{display:flex;flex-direction:column;height:100%}
.form .g2 > label > .hint, .form .g3 > label > .hint, .form .g4 > label > .hint{order:1;margin:3px 0 7px}
.form .g2 > label > input, .form .g2 > label > select, .form .g2 > label > textarea,
.form .g3 > label > input, .form .g3 > label > select, .form .g3 > label > textarea,
.form .g4 > label > input, .form .g4 > label > select, .form .g4 > label > textarea{order:2;margin-top:auto}

/* Spazio sotto la barra fissa delle azioni: era l'ultimo campo di ogni
   maschera lunga a finirci sotto, e non si poteva più toccare. */
main{padding-bottom:96px}
@media (max-width:700px){ main{padding-bottom:124px} }

/* I numeri si leggono incolonnati, e l'intestazione sta sopra il numero. */
td.right, th.right, td.num, th.num{text-align:right}
td.right, td.num, td.mono{font-variant-numeric:tabular-nums}

/* Una tabella più larga dello schermo deve dire che si scorre. */
.panel .tab-scorre, .bp-foglio{overflow-x:auto;
  background:linear-gradient(90deg,#fff 30%,rgba(255,255,255,0)),
             linear-gradient(90deg,rgba(255,255,255,0),#fff 70%) 100% 0,
             radial-gradient(farthest-side at 0 50%,rgba(10,13,49,.14),transparent),
             radial-gradient(farthest-side at 100% 50%,rgba(10,13,49,.14),transparent) 100% 0;
  background-repeat:no-repeat; background-size:40px 100%,40px 100%,14px 100%,14px 100%;
  background-attachment:local,local,scroll,scroll}

/* una riga di campi con l'etichetta sopra ciascuno, che a telefono si impila */
.riga-campi{display:grid;grid-template-columns:1fr 150px 180px auto;gap:14px;align-items:end}
.riga-campi > label{display:flex;flex-direction:column;font-weight:600;font-size:var(--fs-piccolo);min-width:0;height:100%}
.riga-campi > label > .et{margin-bottom:5px}
.riga-campi > label > input,.riga-campi > label > select{margin-top:auto}
.riga-campi > label > .hint{margin-top:5px}
.riga-campi > label input,.riga-campi > label select{width:100%;border:1px solid var(--line);border-radius:8px;
  padding:9px 11px;font:inherit;font-size:var(--fs-secondario);background:#fff}
.riga-campi > label input:focus,.riga-campi > label select:focus{outline:0;border-color:var(--blu);box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}
.riga-campi .hint{font-weight:400;font-size:var(--fs-piccolo);color:var(--muted)}
.riga-campi .ob{color:var(--danger)}
@media (max-width:700px){ .riga-campi{grid-template-columns:1fr} .riga-campi .az .btn{width:100%;justify-content:center} }

/* un'etichetta che sta sopra il suo campo, dove il modulo non è un .form */
label.campo-blocco{display:block;font-weight:600;font-size:var(--fs-piccolo);margin-bottom:14px}
label.campo-blocco > input,label.campo-blocco > textarea{display:block;margin-top:5px;font-weight:400;
  border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:var(--fs-secondario)}
/* la scheda di scelta non è un paragrafo sottolineato */
a.scelta, a.scelta *{text-decoration:none}
a.scelta:hover .vai{text-decoration:underline}
/* l'evidenziazione al passaggio del mouse resta attaccata dopo il tocco:
   su telefono faceva sembrare selezionata una scheda che non lo era */
@media (hover:none){ .scelta:hover{border-color:var(--line);box-shadow:none} .big:hover{border-color:var(--line)} }
.mini-link.danger{color:var(--danger)}

/* ---------- tabelle che a telefono diventano schede ----------
   Stesso principio dei pernottamenti, ma riusabile: la tabella porta la classe
   «tab-scheda», ogni cella dice con data-et di quale colonna è, e la riga di
   intestazione ha classe «testa». Serve dove le colonne sono tante e a 390 px
   si leggeva solo la prima. */
table.fac-tab th.col-doc{text-align:center;white-space:normal;vertical-align:bottom;line-height:1.25;font-size:var(--fs-piccolo)}
table.fac-tab td.col-doc{text-align:center}
@media (max-width:900px){
  table.tab-scheda, table.tab-scheda tbody, table.tab-scheda tr, table.tab-scheda td{
    display:block;width:auto !important;min-width:0 !important}
  table.tab-scheda{min-width:0 !important}
  table.tab-scheda tr.testa{display:none}
  table.tab-scheda tr{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:#fff;position:relative}
  table.tab-scheda td{padding:5px 0;border:0;display:flex;align-items:center;gap:10px;text-align:left}
  table.tab-scheda td:empty{display:none}
  table.tab-scheda td.chi{display:block;padding:0 0 10px 30px;font-size:var(--fs-testo-s);border-bottom:1px solid var(--soft);margin-bottom:6px}
  table.tab-scheda td.spunta{position:absolute;left:14px;top:14px;padding:0}
  table.tab-scheda td[data-et]::before{content:attr(data-et);flex:none;width:112px;font-size:var(--fs-micro);font-weight:700;
    letter-spacing:.04em;text-transform:uppercase;color:var(--muted);line-height:1.25}
  table.tab-scheda td.col-doc{text-align:left}
  table.tab-scheda td.azioni{justify-content:stretch;padding-top:10px}
  table.tab-scheda td.azioni .btn{width:100%;justify-content:center}
  table.tab-scheda input[type=checkbox]{transform:scale(1.4)}
}
/* la parola accanto al pallino: superflua su desktop, indispensabile nella
   scheda del telefono, dove il pallino resterebbe senza intestazione */
.et-sem{display:none}
.legenda-sem{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;padding:12px 2px 2px;font-size:var(--fs-piccolo)}
.legenda-sem .sem{margin-right:2px}
@media (max-width:900px){ .et-sem{display:inline} table.tab-scheda td.col-doc .sem{width:14px} .legenda-sem{display:none} }
/* la colonna della persona è quella che si legge: le colonne di stato, quasi
   vuote, si prendevano lo spazio e il nome andava a capo due volte */
@media (min-width:901px){
  /* Niente table-layout:fixed: le colonne degli adempimenti sono quattro o
     sei a seconda dell'evento, e una percentuale fissa o lascia spazio vuoto o
     fa uscire il pulsante dal riquadro. Basta dire che la colonna della
     persona non si schiaccia e che il pulsante non va a capo dentro sé stesso. */
  table.fac-tab{width:100%;min-width:920px}
  table.fac-tab td:nth-child(2){min-width:170px}
  table.fac-tab th.col-doc,table.fac-tab td.col-doc{width:1%}
  table.fac-tab td.azioni .btn{white-space:nowrap}
}

/* Il business plan è un foglio di calcolo: a telefono non diventa una scheda
   senza perdere il senso della riga. Invece la prima colonna resta ferma
   mentre si scorre, e sopra c'è scritto che si scorre — prima il foglio era
   tagliato sul bordo destro senza nessun indizio. */
.scorri-avviso{display:none}
@media (max-width:700px){
  .scorri-avviso{display:block;background:var(--soft);border-radius:var(--r);padding:9px 12px;margin-bottom:8px;font-size:var(--fs-piccolo)}
  .bp-foglio{-webkit-overflow-scrolling:touch}
  table.bp td:first-child, table.bp th:first-child{position:sticky;left:0;z-index:2;background:#fff;
    box-shadow:6px 0 8px -6px rgba(10,13,49,.18)}
  table.bp tr.sez td:first-child{background:var(--soft)}
  table.bp tr.tot td:first-child{background:var(--navy)}
}

/* ---------- attestati ---------- */
.att-scelte .scelta h3{font-size:var(--fs-testo)}
.att-elenco{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px 18px;margin-top:10px}
.att-p{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:8px;font-weight:400}
.att-p:hover{background:var(--soft)}
.att-p input{margin-top:3px;flex:none}
.att-p span{display:flex;flex-direction:column;line-height:1.4;min-width:0}
.att-p .small{font-size:var(--fs-piccolo)}
.att-area{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px 14px;
  font:14px/1.7 ui-monospace,Menlo,monospace;background:#fff;resize:vertical}
.att-area:focus{outline:0;border-color:var(--blu);box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}
.att-testo summary{cursor:pointer;font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-secondario)}
.att-testo textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font:inherit;font-size:var(--fs-secondario)}
@media (max-width:700px){ .att-elenco{grid-template-columns:1fr} }
/* la rinuncia: un riquadro che si nota quando è attiva, discreto quando non lo è */
.riq-rinuncia.attiva{border-left:3px solid var(--danger);background:#FFFBFA}
.riq-rinuncia .campo-blocco select{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;font-size:var(--fs-secondario)}
.riq-rinuncia .btn{margin-top:10px}
table.fac-tab td.chi .pill{margin-top:4px}
/* rifiuto di una proposta: il motivo accanto al pulsante, non in un'altra schermata */
.rifiuta-con-motivo{display:inline-flex;gap:6px;align-items:center;margin-left:6px}
.rifiuta-con-motivo input{border:1px solid var(--line);border-radius:8px;padding:6px 9px;font:inherit;font-size:var(--fs-piccolo);width:170px}
.rifiuta-con-motivo input:focus{outline:0;border-color:var(--blu);box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}
@media (max-width:900px){ .rifiuta-con-motivo{display:flex;margin:6px 0 0} .rifiuta-con-motivo input{flex:1;width:auto} }
.motivo-rifiuto{color:var(--danger);font-style:italic;margin-top:3px;line-height:1.4}
/* il file unico allegato alla Pratica: verde quando è allineato, rosso quando
   il programma è cambiato dopo l'invio */
.fu-allegato{margin-top:14px;padding:12px 14px;border-radius:var(--r);background:var(--ok-soft)}
.fu-allegato p{margin:0 0 10px}
.fu-allegato.vecchio{background:var(--danger-soft)}
.fu-allegato form{display:inline-block}
/* da dove arriva il relatore: chi è del posto non ha bisogno della camera */
table.pern .del-posto{color:var(--ok);font-weight:600}
table.pern .da-fuori{color:var(--muted)}
/* il venduto non firmato non è come il venduto firmato: si vede */
.kpi.attenzione{border-left:3px solid var(--warn)}
.kpi.attenzione .n{color:var(--warn)}
/* la colonna delle azioni non manda a capo il pulsante sotto la × */
.panel table td.right .btn.sm + form{margin-left:4px}
@media (min-width:901px){ .panel table td.right{white-space:nowrap} }
/* una modifica annullata resta nello storico, ma si vede che non vale più */
.riga-annullata td{opacity:.55}
.riga-annullata td:nth-child(5){text-decoration:line-through}
/* il riquadro che compare subito dopo un'importazione */
.riq-fatto{border-left:3px solid var(--ok)}
.riq-fatto h3{margin-top:0}
/* la guida tecnica: un documento lungo, si legge per sezioni */
.tec-indice{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 18px}
.tec-indice a{font-size:var(--fs-piccolo);padding:5px 10px;border:1px solid var(--bordo);border-radius:999px;color:var(--testo);text-decoration:none;background:var(--card)}
.tec-indice a:hover{border-color:var(--blu);color:var(--blu)}
h2.tec-h{margin:26px 0 10px;font-size:var(--fs-titoletto);scroll-margin-top:16px}
.panel.tec table{margin:10px 0}
.panel.tec table td,.panel.tec table th{vertical-align:top;font-size:var(--fs-piccolo)}
.panel.tec code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:var(--fs-piccolo);background:var(--sfondo);padding:1px 5px;border-radius:4px}
.panel.tec h3{margin:16px 0 6px;font-size:var(--fs-testo-s)}
.panel.tec ol,.panel.tec ul{margin:8px 0 8px 18px}
.panel.tec li{margin-bottom:6px}
@media (max-width:900px){.panel.tec table{display:block;overflow-x:auto}}
/* il riquadro dei dati dimostrativi: non è una cancellazione, non deve essere rosso */
.riq-demo{border-left:3px solid var(--blu)}
.riq-demo h3{margin-top:0}

/* ---- Aggiornamenti (?p=versioni) ---------------------------------- */
/* I passi per caricare una versione: numerati grandi, perché si leggono
   una volta ogni tanto e con le mani occupate dall'FTP. */
.passi-agg{margin:10px 0 0;padding-left:0;list-style:none;counter-reset:pa}
.passi-agg li{position:relative;padding:0 0 12px 38px;counter-increment:pa}
.passi-agg li::before{content:counter(pa);position:absolute;left:0;top:-1px;width:26px;height:26px;
  border-radius:50%;background:var(--blu-soft);color:var(--blu);font-weight:700;font-size:var(--fs-piccolo);
  display:flex;align-items:center;justify-content:center}
.passi-agg li p{margin:3px 0 0;color:var(--muted)}

@media (max-width:700px){
  .passi-agg li{padding-left:32px}
  .passi-agg li::before{width:22px;height:22px;font-size:var(--fs-piccolo)}
}

/* ---- data e ora nella pagina Oggi --------------------------------- */
.oggi-data{display:flex;align-items:baseline;gap:10px;margin-left:auto;white-space:nowrap}
.oggi-data b{font-size:var(--fs-testo-s);color:var(--ink);font-weight:600}
.oggi-data .oggi-ora{font-size:var(--fs-titoletto);font-weight:700;color:var(--blu);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
@media (max-width:700px){
  .oggi-data{margin-left:0;width:100%;gap:8px}
  .oggi-data b{font-size:var(--fs-piccolo)}
  .oggi-data .oggi-ora{font-size:var(--fs-testo)}
}

/* Il prospectus ha otto colonne e due tendine con dentro ragioni sociali
   lunghe: con nomi veri la tabella supera la finestra e a scorrere è la
   pagina intera, menu compreso. Scorre la tabella, non il sito. */
.pag-sponsor .panel{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pag-sponsor table.prosp{max-width:100%}
.pag-sponsor .panel select{max-width:200px}

/* ---- fondo del menu: account e chi è in linea ----------------------
   Stanno FUORI dal <nav>: non sono navigazione fra le pagine di lavoro, sono
   chi sei e chi altro c'è. Fuori dal nav non li raggiunge «aside nav a»,
   quindi la forma della voce è rifatta qui: è voluto, non un doppione. */
/* l'account è un gruppo come gli altri: prima era un blocco senza nome,
   appiccicato in coda alle voci */
.nav-gruppo.account{margin-bottom:0}
.nav-gruppo.account .me{margin:0;padding:6px 12px 0;border-top:0}
.me-riga{display:flex;align-items:center;gap:11px;margin-bottom:2px}
.ava.grande-me{width:40px;height:40px;font-size:var(--fs-secondario)}
.me-testo{min-width:0}
.me-testo b{display:block;color:#fff;font-size:var(--fs-testo-s);font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.me-ruolo{display:block;font-size:var(--fs-piccolo);color:#8A93BE;margin-top:2px}
/* ---- chi c'è adesso ----
   Un elenco corto, sotto l'account. Il pallino è l'unica cosa colorata: il
   verde vuol dire «c'è», il grigio «c'era un momento fa». */
.presenze{margin:10px 0 2px;padding:10px 0 4px;border-top:1px solid rgba(255,255,255,.09)}
/* le due tendine: chiuse mostrano solo il numero, che è quello che serve
   da lontano — quante siamo adesso */
.presenze-g{margin-bottom:2px}
.presenze-g > summary .presenze-n{margin-left:auto;margin-right:16px}
.p-lista{display:block;padding-top:4px}
/* la propria riga: c'è per conferma, non ci si scrive */
.presenza.io b{color:#fff}
.p-apri.ferma{display:flex;align-items:center;gap:9px;width:100%;padding:5px 8px 5px 6px;
  border-radius:9px;cursor:default}
/* il numerino non deve alzare l'etichetta: stessa altezza delle altre voci */
.presenze-n{background:rgba(31,182,110,.20);color:#5FD39B;border-radius:20px;padding:0 6px;
  font-size:var(--fs-micro);letter-spacing:.06em;font-weight:700;line-height:1;height:12px;display:inline-flex;align-items:center}
.presenze-n.spenta{background:rgba(192,84,74,.18);color:#E09A92}
.presenza{display:flex;align-items:flex-start;gap:8px;margin-bottom:2px;font-size:var(--fs-piccolo);line-height:1.25}
/* la riga è un pulsante: apre la conversazione con quella persona */
.presenza .p-form{flex:1;min-width:0}
.p-apri{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none;border:0;
  padding:5px 8px 5px 6px;margin:0;border-radius:9px;cursor:pointer;color:inherit;font:inherit}
.p-apri:hover{background:rgba(255,255,255,.07)}
.p-apri:hover b{color:#fff}
.p-apri:focus-visible{outline:2px solid var(--blu);outline-offset:1px}
.pallino{display:inline-block;width:8px;height:8px;flex:none;border-radius:50%;background:#4A5578}
.pallino.viva{background:#1FB66E;box-shadow:0 0 0 3px rgba(31,182,110,.18)}
/* non in linea: rosso spento. Dice «non c'è», non «errore» */
.pallino.spenta{background:#C0544A}

/* ---- la faccia: foto del profilo, o iniziali ----
   Come in una chat: si riconosce una persona dalla foto prima che dal nome.
   Il pallino sta sull'angolo, con un anello del colore del menu perché si
   stacchi anche su una foto chiara. */
.ava{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:50%;background:var(--ava,#4A5578);color:#fff;
  font-family:Montserrat,sans-serif;font-size:var(--fs-micro);font-weight:700;letter-spacing:.02em;overflow:visible}
.ava img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.ava .pallino{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;
  box-shadow:0 0 0 2.5px var(--navy);margin:0}
.ava .pallino.viva{box-shadow:0 0 0 2.5px var(--navy)}
/* nel riquadro dell'account, accanto al proprio nome */
.ava.piccola{width:22px;height:22px;font-size:var(--fs-micro);margin-right:8px;vertical-align:middle}
/* nella pagina «Il mio account», dove si carica */
.ava.grande{width:88px;height:88px;font-size:var(--fs-titolo-g)}
.foto-riga{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.foto-riga > div{flex:1;min-width:240px}
.presenza .p-chi{padding-top:1px}
/* il pallino accanto al proprio nome: dice «la piattaforma ti vede» */
.me b .pallino{margin-right:7px;vertical-align:middle}
.nav-sez .pallino{margin-left:2px;vertical-align:middle}
.presenza .p-chi{min-width:0}
.presenza b{display:block;color:#C9CEE8;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.presenza.viva b{color:#fff}
.presenza.io b{color:#fff}
.presenza .p-ruolo{display:block;color:#6B74A8;font-size:var(--fs-micro)}
.presenza-altri{color:#6B74A8;font-size:var(--fs-piccolo);padding-left:16px}
.presenze:last-child{padding-bottom:10px}
@media (max-width:700px){.presenza{font-size:var(--fs-testo-s);margin-bottom:10px}.presenza .p-ruolo{font-size:var(--fs-piccolo)}}

/* la Guida, in alto: subito sotto la pagina principale */
.voce-guida{display:flex;align-items:center;gap:9px;margin:2px 0 10px;padding:9px 12px;font-size:var(--fs-testo-s);
  color:#C9CEE8;border-radius:var(--r)}
.voce-guida:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
.voce-guida.on{background:var(--blu);color:#fff;font-weight:600}
.voce-guida .ic{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  flex:none;border-radius:7px;background:rgba(255,255,255,.10);font-size:var(--fs-piccolo);font-weight:700}
.voce-guida.on .ic{background:rgba(255,255,255,.22)}

/* ---- la frase di apertura, in cima a Oggi ----------------------------
   Si legge entrando e poi diventa sfondo: quindi niente riquadro colorato
   e niente grassetto, solo un filetto a sinistra e il carattere del marchio.
   Deve starci senza rubare il posto alle scadenze. */
.manifesto{margin:-6px 0 22px;padding:2px 0 2px 16px;border-left:3px solid var(--area);max-width:900px}
.manifesto p{margin:0 0 4px;color:#4A5578;font-size:var(--fs-testo-s);line-height:1.55;font-family:Montserrat,sans-serif}
.manifesto p:last-child{margin-bottom:0;color:var(--navy);font-weight:600}
/* la frase si può mettere in evidenza: grassetto, corsivo, sottolineato,
   evidenziato — e si può centrare o ingrandire, per chi la vuole a manifesto */
.manifesto b,.manifesto strong{color:var(--navy);font-weight:700}
.manifesto mark{background:rgba(6,14,208,.10);color:var(--blu);padding:0 4px;border-radius:4px}
.manifesto.centro{border-left:0;padding-left:0;text-align:center;margin-left:auto;margin-right:auto;max-width:780px}
.manifesto.grande p{font-size:var(--fs-testo);line-height:1.55}
@media (max-width:700px){.manifesto.grande p{font-size:var(--fs-testo-s)}}
/* il piccolo editor della frase, in Impostazioni */
.mf-editor{margin-bottom:16px}
.mf-barra{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 6px}
.mf-barra button{min-width:34px}
.mf-sel{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-piccolo);color:var(--muted)}
.mf-sel select{padding:6px 8px}
.mf-prev{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:4px}
.mf-prev .manifesto{margin:0}
@media (max-width:700px){.manifesto{margin:0 0 18px;padding-left:12px}.manifesto p{font-size:var(--fs-secondario)}}

/* ---- Il mio lavoro: i quattro riquadri di Eisenhower ------------------
   Due colonne per due, come la matrice vera: a sinistra le cose importanti,
   in alto quelle che scadono. Da telefono diventa una colonna sola, nello
   stesso ordine di lettura — «Fai adesso» per prima. */
.quadranti{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}

.compito{border-top:1px solid #EEF1F8;padding:10px 0 8px}
.compito:first-of-type{border-top:0}
.c-alto{display:flex;gap:8px;align-items:flex-start}
.c-testo{min-width:0;flex:1}
.c-testo b{display:block;font-size:var(--fs-testo-s);line-height:1.4}
.c-dove{font-size:var(--fs-piccolo);color:#8A93BE;margin-top:2px}
.c-dove a{color:#5E6785}
.c-tardi{color:#C0392B;font-weight:600}
.c-vicino{color:#B0761A;font-weight:600}
.c-nota{font-size:var(--fs-piccolo);color:#5E6785;margin-top:4px}

.c-azioni{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px;padding-left:26px}
.c-azioni select{font-size:var(--fs-piccolo);padding:5px 8px;border:1px solid var(--bordo,#E3E7F5);border-radius:8px;background:#fff;color:#5E6785}

@media (max-width:900px){
  .quadranti{grid-template-columns:1fr}
  .c-azioni{padding-left:0}
}

/* ---- Oggi a riquadri -------------------------------------------------
   Due colonne su schermo largo, una sola sotto i 900: i riquadri «interi»
   prendono tutta la riga. L'ordine è quello scelto dalla persona, quindi
   niente posizioni fisse: la griglia si limita a impilare. */

.wdg-t{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.wdg-t h3{margin:0;flex:none}
.wdg-t .btn{margin-left:auto}

.wdg-riga{display:flex;align-items:baseline;gap:10px;padding:7px 0;border-top:1px solid #EEF1F8;color:inherit}
.wdg-riga:first-of-type{border-top:0}
.wdg-riga:hover{text-decoration:none;background:#F8F9FD}
.wdg-riga .tx{flex:1;min-width:0}
.wdg-riga .tx b{display:block;font-size:var(--fs-secondario);line-height:1.25}
.wdg-riga .tx i{font-style:normal;font-size:var(--fs-piccolo);color:#8A93BE}
.wdg-riga .qn{font-size:var(--fs-piccolo);color:#5E6785;white-space:nowrap}

/* barre: l'imbuto dei grant e il venduto degli sponsor */

/* la tendina per scegliere i riquadri */

.riquadri-form{background:#fff;border:1px solid var(--bordo,#E3E7F5);border-radius:14px;padding:16px;margin-top:10px}

.riq-voce{display:flex;align-items:flex-start;gap:10px;padding:7px 8px;border-radius:9px;font-weight:400}
.riq-voce.on{background:#EEF1F8}
.riq-voce input{margin-top:3px;width:auto}

.c-presa{font-size:var(--fs-piccolo);color:#0F8A4D;background:rgba(15,138,77,.10);border-radius:7px;padding:4px 8px}

/* ---------- la pagina del relatore (pubblica, col suo collegamento) ---------- */
.rel-porta{max-width:520px}
.rel-porta .form label{display:block}
.rel-porta input[type=email]{width:100%;box-sizing:border-box;margin:6px 0 12px}

.rel-azioni{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}

/* il rilascio degli attestati ai relatori, nella pagina Attestati */
.att-rilascio{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px}
.att-rilascio.on{border-color:var(--ok,#1C7C54);box-shadow:inset 3px 0 0 var(--ok,#1C7C54)}

/* ---------- Automazioni ---------- */
.auto-cons{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-color:var(--blu);box-shadow:inset 3px 0 0 var(--blu)}
.auto-cron > summary{cursor:pointer;font-weight:600;font-size:var(--fs-secondario)}
.auto-g{font-size:var(--fs-testo-s);margin:26px 0 10px;font-family:Montserrat,sans-serif;letter-spacing:.02em}
.auto-griglia{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.auto-card{margin:0;display:flex;flex-direction:column;gap:8px}
.auto-card.on{border-color:rgba(28,124,84,.45)}
.auto-card.off{opacity:.92}
.auto-card p{margin:0;line-height:1.55}
.auto-testa{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.auto-testa h3{margin:0 0 4px;font-size:var(--fs-testo-s)}
.auto-tag{display:flex;gap:6px;flex-wrap:wrap}
.auto-dl{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:4px 0 0;font-size:var(--fs-piccolo)}
.auto-dl dt{color:var(--muted);font-weight:600}
.auto-dl dd{margin:0}
.auto-par{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:4px}
.auto-par[hidden]{display:none}
.auto-par label{display:flex;flex-direction:column;font-size:var(--fs-piccolo);gap:3px}
.auto-par input{width:90px}
.auto-azioni{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.auto-azioni form{margin:0}
@media (max-width:700px){.auto-griglia{grid-template-columns:1fr}}
.auto-scelta{display:flex;gap:14px;flex-wrap:wrap;font-size:var(--fs-piccolo)}
.auto-scelta label{display:flex;align-items:center;gap:5px}
.auto-scelta input{width:auto;margin:0}
.auto-par label .small{display:block}
.auto-eventi{margin-top:6px}
.auto-eventi .small{display:flex;flex-wrap:wrap;gap:6px 14px}
.auto-eventi a{white-space:normal}
.tocca{margin-bottom:18px;border-color:var(--blu);box-shadow:inset 3px 0 0 var(--blu)}
.tocca > summary{cursor:pointer;font-size:var(--fs-secondario);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tocca-voce{align-items:flex-start;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.tocca-voce form{margin:0}
.sis-msg{width:100%;box-sizing:border-box;font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-piccolo);min-height:260px}
.sis-stato td{padding:6px 10px;border-top:1px solid var(--line);vertical-align:top}

/* ---------- fornitori ---------- */
/* il modulo pubblico: una colonna sola sul telefono, due dove c'è spazio */
.forn-griglia{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px 22px}
.forn-c{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:var(--fs-secondario)}
.forn-c .ob{color:#B02A1F;font-weight:700}
.forn-c input[type=text],.forn-c input[type=email],.forn-c input[type=tel],.forn-c input[type=url],
.forn-c input[type=number],.forn-c select,.forn-c textarea{font-weight:400}
.forn-aiuto{font-weight:400;font-size:var(--fs-piccolo);color:var(--mut);line-height:1.4}
.forn-sn{display:flex;gap:16px;font-weight:400}
.forn-sn label{display:flex;align-items:center;gap:6px;font-weight:400}
.forn-multi{display:flex;flex-wrap:wrap;gap:6px 14px;font-weight:400}
.forn-multi label{display:flex;align-items:center;gap:6px;font-weight:400;font-size:var(--fs-piccolo)}
.forn-sez h3{margin:0 0 4px}
.forn-consenso{flex-direction:row;align-items:flex-start;gap:8px;font-weight:400}
.forn-ok{border-left:4px solid var(--ok,#1C7C54)}
.forn-invito{border-left:4px solid var(--blu)}
.forn-dati{display:flex;flex-wrap:wrap;gap:6px 28px;margin:10px 0}
.forn-dati div{font-size:var(--fs-testo-s)}
.forn-dati b{display:block;font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--mut);font-weight:700}
.forn-cosa{background:var(--soft);border-radius:8px;padding:10px 14px;font-size:var(--fs-testo-s)}
.forn-gia{font-size:var(--fs-secondario);color:var(--mut)}
.forn-rispondi{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.forn-rispondi label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-secondario);font-weight:600}
.forn-rispondi input,.forn-rispondi textarea{font-weight:400}
.forn-bottoni{display:flex;gap:10px;flex-wrap:wrap}
/* la scelta fra le due matrici del cronoprogramma: due carte affiancate,
   col numero di voci grande — perché è quello il dato su cui si sceglie */
.mt-scelta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:14px}
.mt-carta{flex:1 1 260px;max-width:330px;text-align:left;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:16px 18px}
.mt-carta .n{font-weight:700;font-size:var(--fs-titoletto)}
.mt-carta .q{font-size:var(--fs-piccolo);color:var(--blu);font-weight:600;margin-bottom:6px}
.mt-carta p{margin:0 0 12px}
.mt-altra summary{cursor:pointer;font-weight:600;font-size:var(--fs-testo-s)}

/* i loghi di un'azienda: schede della stessa altezza, col pulsante sempre in
   fondo. Righe alte diverse perché un logo verticale è più corto di uno
   orizzontale sono il genere di dettaglio che fa sembrare la pagina sciatta */
.logo-card{display:flex;flex-direction:column;width:190px;padding:10px;
  border:1px solid var(--line);border-radius:10px;background:#fff}
.logo-card.scelto{outline:2px solid var(--blu);outline-offset:1px}
.logo-prova{height:64px;display:flex;align-items:center;justify-content:center;
  background:var(--soft);border-radius:6px}
.logo-prova img{max-width:100%;max-height:60px;object-fit:contain}
.logo-file{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* il programma di lavoro del videomaker: si legge in piedi, col telefono in
   mano e la borsa sulla spalla, quindi righe larghe e orari in evidenza */
.forn-lavoro{border-left:4px solid var(--blu)}
/* il sotto-menu della pagina personale: due sole schede, perché le domande
   che ci si porta sono due — cosa devo fare, e come stiamo a conti */
.forn-schede{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}
.forn-schede a{padding:9px 18px;border-radius:99px;background:#fff;border:1px solid var(--line);
  font-weight:600;font-size:var(--fs-secondario);text-decoration:none;color:var(--ink)}
.forn-schede a.on{background:var(--blu);border-color:var(--blu);color:#fff}
.lav-scarica{gap:8px;flex-wrap:wrap;margin:10px 0 4px}
.lav-ev{margin:16px 0 0}
.lav-tit{font-weight:700;font-size:var(--fs-testo);margin-bottom:8px}
.lav-tit .muted{font-weight:400;font-size:var(--fs-piccolo);display:block;color:var(--mut)}
/* chi chiamare: in congresso è l'informazione che si cerca per prima, quindi
   sta prima degli orari e non in fondo alla pagina */
.lav-ref{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--soft);
  border-radius:8px;padding:8px 12px;font-size:var(--fs-secondario);margin-bottom:10px}
.lav-ref .et{font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);font-weight:700}
.lav-ref a{font-weight:600}
.lav-giorno{margin:0 0 12px}
.lav-gt{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:7px 0;
  border-bottom:2px solid var(--ink);margin-bottom:2px;font-size:var(--fs-testo-s)}
.lav-gt .muted{font-size:var(--fs-piccolo);color:var(--mut)}
.lav-gt .btn{margin-left:auto}
.lav-r{display:flex;gap:16px;padding:11px 0;border-top:1px solid var(--line)}
.lav-q{flex:0 0 150px;font-weight:700;font-size:var(--fs-secondario);color:var(--blu)}
.lav-q .d{display:block;font-weight:400;font-size:var(--fs-piccolo);color:var(--mut)}
.lav-c{flex:1;font-size:var(--fs-secondario);line-height:1.55}
.lav-arg{margin-top:6px;background:var(--soft);border-radius:8px;padding:8px 11px;font-size:var(--fs-secondario)}
.lav-note{margin-top:5px;font-size:var(--fs-piccolo);color:var(--mut)}
@media (max-width:700px){
  .lav-r{flex-direction:column;gap:4px}
  .lav-q{flex:none}
  .lav-gt .btn{margin-left:0;width:100%;text-align:center}
}
@media print{
  .forn-lavoro{border:0}
  .lav-r{break-inside:avoid}
}
/* la scheda interna */
.forn-testa{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.forn-kpi{margin:0;padding:14px 18px;min-width:180px;flex:1}
.forn-kpi .n{font-size:var(--fs-titolo-g);font-weight:700;line-height:1.1}
.forn-kpi .l{font-size:var(--fs-piccolo);color:var(--mut)}
.forn-lettura{margin:12px 0}
.forn-sez-t{display:block;font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin-bottom:4px}
.forn-lettura .riga{display:flex;justify-content:space-between;gap:20px;padding:4px 0;border-bottom:1px solid var(--line);font-size:var(--fs-secondario)}
.forn-lettura .riga span{color:var(--mut)}
.forn-lettura .riga.vuoto b{color:var(--mut);font-weight:400}
.forn-nuovo-voto{margin-top:12px}
.forn-nuovo-voto summary{cursor:pointer;font-weight:600;font-size:var(--fs-secondario)}
.forn-candidati{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:6px 18px}
.forn-cand{display:flex;gap:8px;align-items:flex-start;font-size:var(--fs-secondario);padding:4px 0}
.forn-cand span{line-height:1.4}
.forn-cand .muted{display:block;font-size:var(--fs-piccolo)}
@media (max-width:700px){
  .forn-griglia{grid-template-columns:1fr}
  .forn-lettura .riga{flex-direction:column;gap:0}
  .forn-testa{flex-direction:column}
}
.forn-c.largo{grid-column:1/-1}
.forn-c.largo .forn-multi{gap:6px 22px}

/* ================= I CAMPI DELLA PIATTAFORMA (9.40) =================
   Un modo solo di disegnare un campo, dentro e fuori. Prima ogni pagina si
   arrangiava: i moduli avevano la loro regola, le righe di filtro non ne
   avevano nessuna e mostravano i controlli grezzi del browser, la ricerca ne
   aveva una terza. Il risultato era che la stessa casella aveva tre facce.

   La regola è: riempimento morbido e nessun bordo; il bordo blu e l'alone
   compaiono solo sul campo in cui stai scrivendo. Su un modulo lungo serve a
   qualcosa di preciso — c'è un campo acceso e gli altri no, e l'occhio sa
   dov'è senza cercarlo.

   Le celle dentro le tabelle (.cel del business plan, .pr del prospectus)
   restano fuori: lì il campo è la cella, e un riempimento grigio su
   quattrocento celle farebbe una tabella a scacchi. Le si ritrova più sotto,
   rimesse com'erano. */
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],
input[type=password],input[type=date],input[type=time],input[type=datetime-local],
input[type=search],input[type=month],input:not([type]),select,textarea{
  border:1.5px solid transparent;border-radius:12px;padding:11px 14px;background:#F4F6FB;
  font-family:'Inter Tight',sans-serif;font-weight:400;font-size:var(--fs-testo-s);color:var(--ink);
  transition:background .15s,border-color .15s,box-shadow .15s}
input[type=text]:hover,input[type=email]:hover,input[type=tel]:hover,input[type=url]:hover,
input[type=number]:hover,input[type=password]:hover,input[type=date]:hover,input[type=time]:hover,
input[type=search]:hover,input:not([type]):hover,select:hover,textarea:hover{background:#EEF1F8}
input[type=text]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=url]:focus,
input[type=number]:focus,input[type=password]:focus,input[type=date]:focus,input[type=time]:focus,
input[type=datetime-local]:focus,input[type=search]:focus,input[type=month]:focus,
input:not([type]):focus,select:focus,textarea:focus{
  outline:0;background:#fff;border-color:var(--blu);box-shadow:0 0 0 4px rgba(var(--alone,6,14,208),.13)}
input::placeholder,textarea::placeholder{color:#9AA3BD}
input:disabled,select:disabled,textarea:disabled{background:#EEF1F8;color:#9AA3BD;cursor:not-allowed}

/* la tendina: la freccia la disegniamo noi. Quella del sistema operativo è
   diversa su Windows, Mac e Android, ed è l'unico pezzo di interfaccia che
   non possiamo far assomigliare al resto se non togliendola. */
select{appearance:none;-webkit-appearance:none;padding-right:38px;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E6785' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:17px}
select[multiple]{background-image:none;padding-right:14px}

/* spunte e pallini: quelli del browser sono fermi al 2005, e su un telefono
   sono un bersaglio da tredici pixel */
input[type=checkbox],input[type=radio]{appearance:none;-webkit-appearance:none;flex:none;
  width:20px;height:20px;margin:0 8px 0 0;padding:0;border:1.5px solid #C9CEE0;background:#fff;
  cursor:pointer;position:relative;vertical-align:-4px;transform:none;
  transition:background .15s,border-color .15s}
input[type=checkbox]{border-radius:6px}
input[type=radio]{border-radius:50%}
input[type=checkbox]:hover,input[type=radio]:hover{border-color:#9AA3BD}
input[type=checkbox]:checked{background:var(--blu);border-color:var(--blu)}
input[type=checkbox]:checked::after{content:"";position:absolute;left:6.5px;top:2.5px;width:5px;height:10px;
  border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg)}
input[type=radio]:checked{border-color:var(--blu);border-width:6px}
input[type=checkbox]:disabled,input[type=radio]:disabled{background:#E2E6F0;border-color:#E2E6F0;cursor:not-allowed}
input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{
  outline:3px solid rgba(6,14,208,.20);outline-offset:2px}

/* i moduli: l'etichetta e la distanza fra un campo e l'altro */
.form label{font-size:var(--fs-piccolo);margin-bottom:16px;letter-spacing:.005em}
.form input,.form select,.form textarea{display:block;width:100%;margin-top:6px}
.form input[type=checkbox],.form input[type=radio]{display:inline-block;width:20px;height:20px;margin:0 8px 0 0}
.form input[type=file]{background:#F4F6FB;border:1.5px dashed #C9CEE0;padding:11px 14px;cursor:pointer}

/* le righe di filtro non avevano NESSUNA regola: mostravano i controlli
   grezzi del browser in mezzo a pagine curate */
.filtri{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.filtri input,.filtri select{font-size:var(--fs-secondario);padding:9px 12px;border-radius:10px}
.filtri select{padding-right:34px;background-position:right 10px center;background-size:16px}

/* la ricerca in cima: stessa lingua, misura sua */
.cerca-grande input{border:1.5px solid transparent;background:#F4F6FB}
/* 11.44 (segnalazione di Pietro del 10/10: «la barra di ricerca non si vede»): la casella in cima era grigia
   come la pagina e senza bordo. Ora è bianca, con il bordo grigio e la lente a sinistra, al computer e al
   telefono (variante A di bozze/barra-ricerca.html). Il fuoco resta com'era; cambia solo il colore di fondo,
   così la lente non sparisce mentre si scrive. La prova è verifica-1144.js. */
.cerca-barra input{border:1.5px solid #C9D0E3;padding-left:40px}
/* fondo bianco e lente anche con il puntatore sopra e con il fuoco: le regole generali dei campi (:hover grigio,
   :focus bianco) riscrivono tutto il fondo e la lente spariva (trovato da verifica-1144.js) */
.cerca-barra input,.cerca-barra input:hover,.cerca-barra input:focus{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E6785' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat 13px center/17px}
.cerca-grande input:focus,.cerca-barra input:focus{border-color:var(--blu);box-shadow:0 0 0 4px rgba(var(--alone,6,14,208),.13)}
.cerca-grande input:focus{background:#fff}

/* le celle delle tabelle tornano come erano: lì il campo è la cella */
.cel,table.bp .cel,.cat-voce .pr input,.riga-campi .cel{border:1px solid transparent;background:transparent;
  border-radius:6px;padding:7px 8px;font-size:var(--fs-secondario);box-shadow:none}
.cel:hover,.cat-voce .pr input:hover{border-color:var(--line);background:#fff}
.cel:focus,.cat-voce .pr input:focus{border-color:var(--blu);background:#fff;outline:0;
  box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.12)}
.cel.piccola{font-size:var(--fs-piccolo);padding:3px 8px}
.cel.num{font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-secondario)}
.cel.data{font-size:var(--fs-piccolo)}

/* il pulsante: stesso raggio dei campi, così una riga di modulo non ha tre
   angoli diversi */
.btn{border-radius:10px}

/* ---------- il modulo pubblico, rifatto (9.39) ----------
   Il difetto era che si vedeva il controllo prima del contenuto: rettangoli
   bordati, spunte di sistema, pallini di sistema. Un modulo che si compila dal
   telefono deve avere campi morbidi, grandi da toccare, e uno stato acceso che
   si vede da lontano. Tutto quello che sta qui vale SOLO sul portale pubblico
   (.forn-modulo e le pagine «ext»), non sulle schermate interne: quelle sono
   tabelle fitte, e campi alti 52 px le renderebbero illeggibili. */
.forn-sez{border:0;border-radius:22px;padding:26px 28px;box-shadow:0 1px 2px rgba(10,13,49,.04),0 10px 34px rgba(10,13,49,.07)}
.forn-sez h3{font-size:var(--fs-titoletto);letter-spacing:-.01em}
.forn-griglia{gap:18px 22px}
.forn-c{gap:7px;font-size:var(--fs-piccolo);letter-spacing:.005em}

/* i campi: riempimento morbido invece del bordo, e il bordo torna solo quando
   ci scrivi dentro — è quello che li fa sembrare «accesi» uno per volta */
.forn-modulo .forn-c input[type=text],.forn-modulo .forn-c input[type=email],
.forn-modulo .forn-c input[type=tel],.forn-modulo .forn-c input[type=url],
.forn-modulo .forn-c input[type=number],.forn-modulo .forn-c select,
.forn-modulo .forn-c textarea{
  width:100%;margin-top:0;border:1.5px solid transparent;border-radius:14px;padding:14px 16px;
  background:#F4F6FB;font-family:'Inter Tight',sans-serif;font-size:var(--fs-testo);font-weight:400;color:var(--ink);
  transition:background .15s,border-color .15s,box-shadow .15s}
.forn-modulo .forn-c input::placeholder,.forn-modulo .forn-c textarea::placeholder{color:#9AA3BD}
.forn-modulo .forn-c input:hover,.forn-modulo .forn-c select:hover,.forn-modulo .forn-c textarea:hover{background:#EEF1F8}
.forn-modulo .forn-c input:focus,.forn-modulo .forn-c select:focus,.forn-modulo .forn-c textarea:focus{
  outline:0;background:#fff;border-color:var(--blu);box-shadow:0 0 0 4px rgba(var(--alone,6,14,208),.13)}
/* la tendina: freccia disegnata da noi, non quella del sistema */
.forn-modulo .forn-c select{appearance:none;padding-right:42px;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E6785' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:18px}

/* scelte multiple: pillole da toccare. Una spunta di sistema a 390 px è un
   bersaglio da 13 px, e si sbaglia. */
.forn-multi{gap:8px}
.forn-multi label{position:relative;display:inline-flex;align-items:center;padding:10px 16px;
  border:1.5px solid transparent;border-radius:999px;background:#F4F6FB;font-size:var(--fs-secondario);line-height:1.25;
  color:#3A4262;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s,transform .08s;user-select:none}
.forn-multi label:hover{background:#E2E6F0}
.forn-multi label:active{transform:scale(.97)}
.forn-multi input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;appearance:none}
.forn-multi label:has(input:checked){background:var(--blu);color:#fff;font-weight:600;
  box-shadow:0 6px 16px rgba(6,14,208,.26)}
.forn-multi label:has(input:focus-visible){box-shadow:0 0 0 4px rgba(var(--alone,6,14,208),.18)}

/* sì / no: un interruttore a due posizioni, non due pallini */
.forn-sn{display:flex;width:max-content;margin-top:2px;gap:0;padding:4px;background:#F4F6FB;border-radius:999px}
.forn-sn label{position:relative;display:inline-flex;align-items:center;justify-content:center;
  min-width:70px;padding:8px 18px;border-radius:999px;font-size:var(--fs-secondario);line-height:1.25;color:#3A4262;
  cursor:pointer;transition:background .18s,color .18s,box-shadow .18s;user-select:none}
.forn-sn input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;appearance:none}
.forn-sn label:has(input:checked){background:var(--blu);color:#fff;font-weight:700;box-shadow:0 4px 12px rgba(6,14,208,.25)}
.forn-sn label:has(input:focus-visible){box-shadow:0 0 0 4px rgba(var(--alone,6,14,208),.18)}

/* il consenso: una riga sola che si accende tutta, così non si spunta per sbaglio */
.forn-consenso{align-items:center;gap:14px;padding:16px 18px;border:1.5px solid transparent;border-radius:16px;
  background:#F4F6FB;cursor:pointer;font-size:var(--fs-secondario);transition:background .15s,border-color .15s}
.forn-consenso input[type=checkbox]{appearance:none;flex:none;width:24px;height:24px;margin:0;
  border:1.5px solid #C9CEE0;border-radius:8px;background:#fff;cursor:pointer;position:relative;
  transition:background .15s,border-color .15s}
.forn-consenso input[type=checkbox]:checked{background:var(--blu);border-color:var(--blu)}
.forn-consenso input[type=checkbox]:checked::after{content:"";position:absolute;left:8px;top:4px;width:6px;height:11px;
  border:2.2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg)}
.forn-consenso:has(input:checked){background:var(--blu-soft);border-color:var(--blu)}
.forn-consenso input[type=checkbox]:focus-visible{outline:3px solid rgba(6,14,208,.22);outline-offset:2px}

/* gli eventi aperti: una scheda per evento, che si accende quando la spunti.
   La spunta di sistema sta dentro e si vede: qui non è una pillola, perché
   accanto c'è del testo lungo e la persona deve capire che sta scegliendo
   quella riga, non leggendo un elenco. */
/* «.ext-shell label{display:block}» vince su una classe sola: la scheda di un
   evento aperto è dentro il guscio delle pagine pubbliche, e senza questa
   specificità in più la spunta finisce sopra al testo invece che accanto */
.ext-shell .forn-evento,.forn-evento{display:flex;flex-direction:row;align-items:flex-start;gap:14px;padding:16px 18px;border:1.5px solid transparent;
  border-radius:16px;background:#F4F6FB;cursor:pointer;transition:background .15s,border-color .15s}
.forn-evento:hover{background:#EEF1F8}
.forn-evento input[type=checkbox]{margin-top:2px}
.forn-evento:has(input:checked){background:var(--blu-soft);border-color:var(--blu)}
@media (max-width:700px){
  .forn-evento{padding:14px 15px;border-radius:14px}
}

/* il pulsante che chiude il modulo: alto, largo, e sul telefono tutta la riga */
.forn-modulo > .btn.primary,.forn-modulo button.primary{border-radius:999px;padding:15px 34px;font-size:var(--fs-testo-s);
  box-shadow:0 8px 22px rgba(6,14,208,.28)}
@media (max-width:700px){
  .forn-sez{padding:20px 18px;border-radius:18px}
  .forn-sn{width:100%}
  .forn-sn label{flex:1}
  .forn-modulo button.primary{width:100%}
}

/* ---------- 9.40 · il kit da condividere del direttore scientifico ----------
   Righe, non schede: sono coppie «cosa» + «cosa ci faccio», e la cosa da fare
   deve stare sulla stessa riga dell'oggetto, altrimenti su telefono i pulsanti
   finiscono tutti in fondo e non si capisce più quale apre cosa. */
.kit-righe{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:12px}
.kit-riga{display:flex;gap:12px;align-items:center;justify-content:space-between;
  padding:12px 14px;background:#fff}
.kit-riga + .kit-riga{border-top:1px solid var(--line)}
.kit-az{display:flex;gap:6px;flex:0 0 auto}
.kit-mini{width:84px;height:46px;object-fit:cover;border-radius:8px;border:1px solid var(--line);
  background:#F4F6FB;flex:0 0 auto}
@media (max-width:700px){
  .kit-riga{flex-direction:column;align-items:stretch}
  .kit-az{justify-content:flex-end}
}

/* 9.41 · un elemento nascosto deve restare nascosto: le regole che danno
   display:block alle etichette battevano l'attributo hidden, e il campo
   «come si chiama la sala nuova» si vedeva sempre. */
[hidden]{display:none !important}

/* 9.45 · il campo trappola per i robot. Va nascosto agli occhi e lasciato
   nel modulo: se si vede, la prima cosa che una persona incontra è una
   domanda che non la riguarda — ed è successo davvero, il campo «Sito» in
   cima alla pagina dei contributi. Fuori dallo schermo e non display:none,
   perché un campo con display:none certi robot lo saltano, e allora la
   trappola non prende più niente. */
.campo-trappola{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* 9.41 · il collegamento personale di chi sta fuori, da copiare e mandare */
.coll{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:12px;background:#F8F9FD}
.coll-t{font:700 10px/1 'Inter Tight',system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;
  color:#5E6785;margin-bottom:8px}
.coll-r{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.coll-u{flex:1 1 100%;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-piccolo)}
.coll-r .btn{white-space:nowrap}
.coll-n{margin-top:8px;line-height:1.55}
@media (max-width:700px){ .coll-r .btn{flex:1} }

/* ---------- 9.42 · gli ebook ----------
   Il codice grande e distanziato: si legge al telefono e si detta a voce,
   ed è la cosa che in quella pagina si guarda per prima. */
.ebook-cod{font:800 30px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.22em;
  color:var(--accent);margin-top:6px;word-break:break-all}
.eb-obb{font:700 10px/1 'Inter Tight',system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;
  color:#B02A1F;background:rgba(176,42,31,.09);padding:3px 7px;border-radius:99px;vertical-align:2px}
/* le miniature: quadrate e tutte uguali, perché una colonna di foto di
   proporzioni diverse non si legge come un elenco */
.eb-mini{display:flex;gap:6px;flex-wrap:wrap}
.eb-mini img{width:60px;height:60px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}
.eb-mini a{display:block;line-height:0}
.eb-f{display:flex;flex-direction:column;gap:3px;width:78px}
.eb-fn{font-size:var(--fs-micro);color:#5E6785;line-height:1.25;word-break:break-word}
.eb-doc{display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:8px;
  border:1px solid var(--line);background:#F4F6FB;font:700 11px/1 'Inter Tight',system-ui,sans-serif;
  color:#5E6785;letter-spacing:.04em}
/* l'elenco dei propri contributi: righe toccabili, non una tabella */
.eb-lista{display:flex;flex-direction:column;gap:6px}
.eb-voce{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;
  border:1px solid var(--line);border-radius:12px;background:#fff;text-decoration:none;color:inherit}
.eb-voce.on{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.08)}
.eb-voce b{font-weight:600}
@media (max-width:700px){
  .ebook-cod{font-size:var(--fs-titolo-g);letter-spacing:.16em}
  .eb-voce{flex-direction:column;align-items:flex-start}
}

/* 9.46 · le regole di controllo dentro la scheda di una domanda. Riquadro
   staccato e più spento del resto: non è quello che si compila ogni volta,
   ma dev'essere lì e non dentro un pannello che si apre. */
.eb-regole{border:1px dashed var(--line);border-radius:12px;padding:12px 14px;margin:12px 0;background:#FFFFFF}
.eb-regole-t{font:700 10px/1 'Inter Tight',system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;
  color:#5E6785;margin-bottom:10px}
.eb-regole-t span{font-weight:500;letter-spacing:0;text-transform:none;font-size:var(--fs-piccolo);color:#7A83A0;margin-left:8px}
.eb-r + .eb-r{margin-top:10px}

/* 9.46 · un gruppo di caselle o di tendine non sta dentro un <label> (quel
   tag lega l'etichetta a UN controllo), quindi il suo involucro è un div: qui
   gli si dà lo stesso aspetto, perché «.form label{display:block}» vince su
   «.forn-c{display:flex}» e il div senza questa riga tornava a colonna — con
   la pastiglia «obbligatoria» larga quanto tutta la pagina. */
.form div.forn-c{display:block;font-family:Montserrat,sans-serif;font-size:var(--fs-secondario);font-weight:600;margin-bottom:18px}

/* 9.46 · la griglia a punteggio, dalla parte di chi compila: una riga per
   voce, la tendina accanto. In colonna e non in tabella, perché da telefono
   una tabella di cinque righe per due colonne diventa illeggibile. */
.eb-griglia{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.eb-gr{display:flex;align-items:center;gap:10px}
.eb-gr-e{flex:0 0 130px;font-size:var(--fs-piccolo);font-weight:600;min-width:0;overflow-wrap:break-word}
.eb-gr select{flex:1 1 auto;min-width:0}
@media (max-width:700px){ .eb-gr-e{flex:0 0 84px} }

/* 9.46 · la scelta multipla: caselle in colonna, non una tendina lunga */
.eb-spunte{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.eb-spunte label{display:flex;align-items:flex-start;gap:8px;font-size:var(--fs-secondario);font-weight:400;margin:0;
  padding:5px 8px;border-radius:8px}
.eb-spunte label:hover{background:#F4F6FB}
.eb-spunte input{margin-top:3px;flex:0 0 auto}

/* 9.46 · l'anteprima prima di consegnare */
.eb-ant{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#F8F9FD;margin-top:12px}
.eb-ant-r + .eb-ant-r{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}
.eb-ant-e{font:700 10px/1 'Inter Tight',system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;
  color:#5E6785;margin-bottom:4px}
.eb-ant-v{font-size:var(--fs-secondario);line-height:1.55;white-space:pre-wrap}
.eb-ant-v.vuoto{color:#7A83A0;font-style:italic}
.eb-ant-s{font-size:var(--fs-testo);font-weight:700;margin:16px 0 2px}

/* 9.45 · il titolo di sezione dentro il modulo. Non è una domanda e non deve
   sembrarlo: nessun bordo, nessuno sfondo, solo una riga che dice «da qui si
   parla d'altro». Su dodici domande di fila è quello che fa arrivare in
   fondo invece di chiudere la pagina a metà. */
.eb-sezione{margin:26px 0 6px;padding-top:16px;border-top:2px solid var(--line)}
.eb-sezione:first-child{margin-top:0;padding-top:0;border-top:0}
.eb-sezione h3{margin:0;font-size:var(--fs-titoletto)}
.eb-sezione p{margin:4px 0 0}

/* 9.45 · la didascalia sotto la miniatura: stretta quanto la foto, perché
   sta in fila con le altre e deve restare leggibile anche in sei */
.eb-f{width:96px}
.eb-dida{font-size:var(--fs-micro);padding:4px 6px;width:100%;min-width:0}

/* 9.45 · il prima e dopo: due caselle affiancate, con l'etichetta sopra.
   Affiancate e non in fila, perché è appaiandole che si legge il caso. */
.eb-pd{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.eb-pd-c{border:1px solid var(--line);border-radius:12px;padding:10px;background:#F8F9FD;min-width:0}
.eb-pd-t{font:700 10px/1 'Inter Tight',system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;
  color:#5E6785;margin-bottom:8px}
.eb-pd-c img{width:100%;height:150px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}
.eb-pd-c input[type=file]{max-width:100%}
@media (max-width:700px){
  .eb-pd{grid-template-columns:1fr}
  .eb-pd-c img{height:190px}
}

/* 9.44 · il numero di versione accanto al nome, in alto.
   Piccolo e spento: si legge quando lo si cerca — dopo un caricamento — e
   non ruba attenzione tutte le altre volte. */
.brand-v{font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
  color:rgba(255,255,255,.62);background:rgba(255,255,255,.10);border-radius:99px;
  padding:4px 8px;align-self:center;white-space:nowrap}
@media (max-width:700px){ .brand-v{display:none} }

/* ---------- «Guarda come»: la fascia che non si può ignorare (9.48) ----------
   Fissa in cima e su ogni pagina, sopra qualunque altra cosa. Non è una voce
   di menu per un motivo preciso: chi dimentica di essere nei panni di un
   altro fa danni convinto di essere sé stesso, e una voce di menu si
   dimentica per definizione. Il colore cambia col permesso: ambra quando si
   guarda e basta, verde quando si può anche salvare (dati di prova). */
/* ---------- «Da chiudere»: una scheda per persona ----------
   Con «chi lo chiama», la riserva, il diario e i pulsanti di stato, una riga
   di tabella non bastava più: sei colonne non stanno in un video, e a
   telefono si leggeva solo il nome. */
.da-chiudere{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;margin:10px 0;background:#fff}
.da-chiudere.richiama{border-color:#C0392B;background:#FDF6F5}
.da-chiudere .riga-nome{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.da-chiudere .ultimo{margin:7px 0 0;padding:7px 10px;background:var(--soft);border-radius:8px}
.da-chiudere.richiama .ultimo{background:#F8E4E1}
.da-chiudere .riga-campi{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}
.da-chiudere .riga-campi .campo{margin:0}
.da-chiudere .riga-campi label{display:block;margin-bottom:3px;text-align:left}
.da-chiudere .riga-campi .campo{min-width:260px}
.da-chiudere .diario{margin-top:10px;border-top:1px solid var(--soft);padding-top:8px}
.da-chiudere .diario summary{cursor:pointer;font-weight:600}
.da-chiudere .diario .form{margin:10px 0 4px}
.da-chiudere .diario table{margin-top:8px}
@media (max-width:700px){
  .da-chiudere .riga-campi{flex-direction:column;gap:10px;align-items:stretch}
  .da-chiudere .riga-campi .campo{min-width:0;width:100%;align-self:stretch;margin-left:0}
  .da-chiudere .riga-campi select,.da-chiudere .riga-campi input{max-width:100% !important;width:100%}
  .da-chiudere .riga-campi .row{flex-wrap:wrap}
}

/* 9.53 · la fascia del caricamento incompleto: la vede solo chi può
   rimediare, e dice l'unica cosa da fare invece di mandare a cercare. */
.fascia-carico{background:#C0392B;color:#fff;padding:9px 16px;font-size:var(--fs-secondario);line-height:1.55}
.fascia-carico a{color:#fff;text-decoration:underline;margin-left:6px}
.fascia-carico code{background:rgba(255,255,255,.18);padding:1px 5px;border-radius:4px}

.gc-fascia{position:sticky;top:0;z-index:900;background:#B0761A;color:#fff;
  font:600 13.5px/1.35 inherit;box-shadow:0 2px 10px rgba(10,13,49,.18)}
.gc-fascia .gc-in{max-width:1400px;margin:0 auto;padding:9px 16px;display:flex;
  align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}
.gc-fascia .gc-txt{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gc-fascia b{font-weight:800}
.gc-fascia .gc-cosa{background:rgba(255,255,255,.22);border-radius:99px;padding:2px 9px;font-weight:600;font-size:var(--fs-piccolo)}
.gc-fascia .gc-stato{opacity:.95;font-weight:600;font-size:var(--fs-piccolo)}
.gc-fascia .gc-stato::before{content:'· '}
.gc-btn{border:0;border-radius:99px;background:#fff;color:#0A0D31;font:700 13px/1 inherit;
  padding:8px 15px;cursor:pointer;white-space:nowrap}
.gc-btn:hover{background:#F4F6FB}
/* verde quando si entra davvero: è il caso in cui i pulsanti funzionano */
.gc-fascia:has(.gc-pieno){background:#0F8A4D}
@media (max-width:700px){
  .gc-fascia .gc-in{padding:8px 12px;gap:8px}
  .gc-fascia{font-size:var(--fs-piccolo)}
}

/* ---------- RUOLI E PERMESSI (9.56) ----------
   Una griglia: moduli in riga, ruoli in colonna. La casella si colora come il
   valore — grigia «no», ambra «legge», verde «scrive» — così si vede da
   lontano chi entra dove, senza leggere le tendine una per una. */
.rp-scorre{overflow-x:auto}
table.rp{border-collapse:separate;border-spacing:0;min-width:900px;width:100%}
table.rp th{position:sticky;top:0;background:#fff;z-index:2;vertical-align:bottom;padding:8px 6px;border-bottom:2px solid var(--line);text-align:center}
table.rp th.rp-mod-col,table.rp td.rp-mod-col{text-align:left;min-width:220px;max-width:300px;position:sticky;left:0;background:#fff;z-index:1}
table.rp th .rp-r{font-family:Montserrat,sans-serif;font-size:var(--fs-piccolo);font-weight:700}
table.rp th.fisso .rp-r{color:var(--muted)}
table.rp td{padding:6px 6px;border-bottom:1px solid #EEF1F8;vertical-align:top}
table.rp tr.rp-gruppo td{background:var(--soft);font-family:Montserrat,sans-serif;font-size:var(--fs-micro);font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:8px 10px;position:static}
td.rp-c{text-align:center;white-space:nowrap}
td.rp-c select{font-size:var(--fs-piccolo);padding:5px 6px;border-radius:8px;border:1.5px solid var(--line);background:#fff;max-width:140px}
td.rp-c.legge select,td.rp-c.legge .rp-v{background:var(--warn-soft);border-color:var(--warn)}
td.rp-c.scrive select,td.rp-c.scrive .rp-v{background:var(--ok-soft);border-color:var(--ok)}
td.rp-c.no select,td.rp-c.no .rp-v{background:#fff;color:var(--muted)}
td.rp-c.fisso{background:#F8F9FD}
.rp-v{display:inline-block;font-size:var(--fs-piccolo);padding:5px 9px;border-radius:8px;border:1.5px solid var(--line)}
.rp-mod{color:var(--blu);font-size:var(--fs-micro);vertical-align:top;margin-left:2px}
.rp-riga{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #EEF1F8}
.rp-riga:last-child{border-bottom:0}
.rp-riga summary{cursor:pointer;list-style:none}
.rp-riga summary::-webkit-details-marker{display:none}
@media (max-width:700px){
  table.rp th.rp-mod-col,table.rp td.rp-mod-col{min-width:160px;max-width:200px}
  td.rp-c select{max-width:110px}
}

/* ---------- 9.62 · i problemi del programma si vedono e si passano ----------
   Le pastiglie erano piccole e tutte dello stesso peso: un bloccante — una
   persona in due sale alla stessa ora — aveva l'aria di «19 interventi senza
   relatore», che non è un errore ma un lavoro da finire. Adesso il bloccante
   è rosso pieno e più grande di tutto il resto, e cliccandolo si apre
   l'elenco di chi ha il problema invece di un filtro muto. */
.manca .chip-manca{padding:7px 14px;font-size:var(--fs-secondario);font-weight:600;letter-spacing:.1px}
.manca .chip-manca.grave{background:#C0392B;color:#fff;border-color:#C0392B;font-size:var(--fs-testo-s);padding:8px 16px}
.manca .chip-manca.grave:hover{background:#A93226;border-color:#A93226}
.manca .chip-manca.grave.on{background:#8E2A1E;border-color:#8E2A1E}
.manca .chip-manca.grave::before{content:"!";display:inline-block;width:16px;height:16px;line-height:16px;
  margin-right:7px;border-radius:50%;background:#fff;color:#C0392B;font-weight:800;font-size:var(--fs-micro);text-align:center;
  vertical-align:1px}

.prob-pannello{margin:14px 0 18px;padding:18px 20px}
.prob-testa{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}
.prob-testa h2{margin:0;font-size:var(--fs-titoletto)}
.prob-testa .quanti{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:99px;
  background:var(--sfondo,#F4F6FB);color:var(--muted);font-size:var(--fs-secondario);font-weight:600}
/* la casella del problema è alta apposta: ci sta dentro il nome, dove e
   quando succede, e cosa vuol dire — tre righe che si leggono in piedi */
.prob-voce{padding:18px 20px;margin-bottom:10px;border-left-width:5px}
.prob-voce h3{font-size:var(--fs-titoletto);margin:0 0 6px;line-height:1.4}
.prob-voce p{font-size:var(--fs-secondario);line-height:1.55;color:var(--testo,#1F2937)}
.prob-voce.bloccante{background:#FFF7F6;border-color:#EBC3BC}
.prob-voce.attenzione{background:#FFFCF5;border-color:#EBD9B4}
.prob-chi{margin-top:10px!important;font-size:var(--fs-piccolo)!important;color:#0F6B3F!important}
.prob-chi.fatto{color:var(--muted)!important}
.prob-azioni{display:flex;flex-direction:column;gap:8px;align-items:flex-end;flex:none}
.prob-ass{display:flex;gap:6px;align-items:center}
.prob-ass select{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-size:var(--fs-piccolo);max-width:190px}

/* la sessione che ha il problema, quando il filtro è acceso */
.ses-blocco.ha-problema{box-shadow:inset 4px 0 0 #C0392B}

@media (max-width:700px){
  .prob-voce{flex-direction:column;gap:12px}
  .prob-azioni{align-items:stretch;width:100%}
  .prob-ass{width:100%}
  .prob-ass select{flex:1;max-width:none}
  .prob-testa{flex-direction:column;align-items:flex-start;gap:8px}
}

/* ---------- 9.63 · «Salve Nome Cognome» ----------
   Chi arriva da un collegamento personale apre una pagina che parla di lui:
   il nome stava in una riga grigia piccola sopra l'occhiello e si leggeva
   come una didascalia del sito, non come «questa è la tua pagina». */
.ext-hero .saluto{font-size:var(--fs-titoletto);line-height:1.25;color:rgba(255,255,255,.92);margin-bottom:14px;
  font-weight:400;letter-spacing:.1px}
/* 9.72 — più grande: a 19px, sopra un titolo enorme, non si leggeva */
.ext-hero .saluto{font-family:Montserrat,sans-serif;font-size:32px;line-height:1.25;margin-bottom:16px;font-weight:500;letter-spacing:-.2px}
.ext-hero .saluto b{font-weight:700;color:#fff}
@media (max-width:700px){
  .ext-hero .saluto{font-size:var(--fs-titolo-g);margin-bottom:10px}
}

/* 9.64 · il problema mandato alla società: è una cosa partita, non una
   cosa presa in carico da noi — e si legge diversa */
.prob-chi.soc{color:#0B5FB0!important}

/* 9.65 · il pannello dell'email */

.pw-ok{display:inline-block;padding:1px 8px;border-radius:99px;background:#E4F4EA;color:#0F6B3F;font-size:var(--fs-piccolo);font-weight:600}

/* ---------- 9.66: Sistema → Email ---------- */
.mail-filtri input[name=q]{flex:1 1 220px;min-width:0}
.mail-reg{padding:4px 0}
.mail-riga{display:grid;grid-template-columns:118px 1fr 190px;gap:16px;padding:14px 20px;border-bottom:1px solid var(--soft);align-items:start}
.mail-riga:last-child{border-bottom:0}
.mail-riga.ko{background:linear-gradient(90deg,rgba(192,57,43,.06),transparent 40%)}
.mr-quando{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-piccolo)}
.mr-quando .pill{align-self:flex-start;margin-top:2px}
.mr-a{font-size:var(--fs-testo-s);line-height:1.4;overflow-wrap:anywhere}
.mr-ogg{font-size:var(--fs-secondario);margin-top:2px;overflow-wrap:anywhere}
.mr-meta{margin-top:4px}
.mr-rim{color:var(--area)}
.mr-err{margin-top:6px;color:var(--danger);line-height:1.4}
.mr-testo{margin-top:6px}
.mr-testo summary{cursor:pointer;color:var(--blu)}
.mr-testo pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#F8F9FD;border-radius:10px;padding:10px 12px;margin:6px 0 0;max-height:360px;overflow:auto}
.mr-esito{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right}
.mr-esito form{margin:0}
.mr-aperta{font-weight:700;font-size:var(--fs-secondario);color:var(--ok)}
.mr-aperta:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ok);margin-right:6px;vertical-align:1px}
.riga-spunta{display:flex !important;gap:10px;align-items:flex-start;font-size:var(--fs-secondario) !important;line-height:1.4}
.riga-spunta input{flex:none;margin-top:1px !important}
.smtp-preset .btn{margin-left:4px}
@media (max-width:700px){
  .mail-riga{grid-template-columns:1fr;gap:8px;padding:14px 16px}
  .mr-quando{flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px}
  .mr-quando .pill{margin:0 0 0 auto}
  .mr-esito{align-items:flex-start;text-align:left}
  .mr-esito .btn{width:100%}
  .mr-esito form{width:100%}
}
.mail-filtri select{flex:0 1 auto;max-width:260px}
@media (max-width:700px){
  .mail-filtri{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .mail-filtri input[name=q]{grid-column:1 / -1}
  .mail-filtri select{max-width:none;width:100%;min-width:0}
  .mail-filtri .btn{justify-content:center}
}
.mail-g2{align-items:stretch}.mail-g2 > .panel{margin-top:0;margin-bottom:0}.mail-g2{margin-bottom:18px}
.mail-form .g2{margin-bottom:16px;align-items:end}.mail-form .g2 > label{margin-bottom:0}
@media (max-width:700px){.mail-kpi{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mail-kpi .kpi{padding:12px 10px}.mail-kpi .kpi .l{font-size:var(--fs-micro);letter-spacing:.04em}}

/* ---------- 9.68: la Strategia dell'evento ---------- */
.ctrl-voce.strat-rosso{border-left-color:#C0392B}
.ctrl-voce.strat-giallo{border-left-color:#D98B10}
.ctrl-voce.strat-verde{border-left-color:#1C7C54}
.ctrl-voce.strat-verde h3{font-weight:600}
.strat-az{display:flex;gap:8px;flex:none;align-items:center}
.strat-sez{margin-top:22px}
.strat-sez > h3{margin-top:0}
.strat-form{margin-top:12px}
.strat-lista{margin-top:14px;border-top:1px solid var(--soft)}
.strat-riga{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--soft)}
.strat-riga:last-child{border-bottom:0}
.strat-riga .c{flex:1;min-width:0;overflow-wrap:anywhere}
.strat-riga .c > div{margin-top:3px}
.strat-riga.chiusa b{color:var(--muted);font-weight:600}
.strat-riga .pill{flex:none}
.strat-esito{background:#F8F9FD;border-radius:8px;padding:6px 10px;margin-top:6px !important}
.strat-modifica{margin-top:6px}
.strat-modifica summary,.strat-nuova > summary{cursor:pointer;color:var(--blu);list-style:none}
.strat-nuova > summary::-webkit-details-marker,.strat-modifica summary::-webkit-details-marker{display:none}
.strat-nuova{margin-top:6px}
.strat-prec h4,.strat-sez h4{font-size:var(--fs-piccolo);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:10px 0 4px;font-family:Montserrat,sans-serif}
.strat-ul{margin:4px 0 0 18px;padding:0;line-height:1.55}
.strat-conf{margin-top:10px}
.strat-conf .h,.strat-conf .r{display:grid;grid-template-columns:1.4fr 1fr 1fr .8fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--soft);align-items:baseline}
.strat-conf .h{font-size:var(--fs-piccolo);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.strat-conf .r{font-size:var(--fs-testo-s)}
.strat-conf .r:last-child{border-bottom:0}
.strat-conf .l{font-weight:600}
.st-su{color:#1C7C54;font-weight:600}
.st-giu{color:#C0392B;font-weight:600}
.wdg-rosso{color:#C0392B;font-weight:700;font-style:normal}
@media (max-width:700px){
  .strat-az{width:100%}
  .strat-az .btn{flex:1;justify-content:center}
  .strat-conf .h{display:none}
  .strat-conf .r{grid-template-columns:1fr 1fr;row-gap:2px}
  .strat-conf .r .l{grid-column:1 / -1}
  .strat-conf .r span:nth-child(2):before{content:'Questa: ';color:var(--muted);font-size:var(--fs-piccolo)}
  .strat-conf .r span:nth-child(3):before{content:'Prima: ';color:var(--muted);font-size:var(--fs-piccolo)}
}
@media (max-width:700px){.ctrl-voce[class*=strat-] > .pallino{display:none}}

/* ---------- 9.69: il resoconto agli sponsor ---------- */
.res-testa{display:flex;gap:16px;justify-content:space-between;align-items:flex-start}
.res-testa form{margin:0;flex:none}
.res-spunta{margin:12px 0 0}
.res-sp form{margin:0;flex:none}
.res-risp{display:flex;gap:8px;align-items:center;margin:6px 0 4px}
.res-v{font-family:Montserrat,sans-serif;font-weight:800;font-size:var(--fs-testo-s);padding:2px 10px;border-radius:99px;background:var(--soft)}
.res-v.v1,.res-v.v2{background:#F7D5D0;color:#96271B}
.res-v.v3{background:#FBEBD0;color:#8A5A0B}
.res-v.v4,.res-v.v5{background:#D6F0E3;color:#12613F}
/* la pagina dello sponsor */
.res-lista{margin:6px 0 10px;padding:0;list-style:none}
.res-lista li{padding:8px 0;border-bottom:1px solid var(--soft);line-height:1.4}
.res-lista li:last-child{border-bottom:0}
.res-cosa h4{margin:14px 0 2px;font-size:var(--fs-piccolo);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-family:Montserrat,sans-serif}
.res-riga{display:flex;gap:10px;align-items:flex-start;margin:8px 0}
.res-segno{flex:none;width:9px;height:9px;border-radius:50%;background:#1C7C54;margin-top:6px}
.res-num .kpi{text-align:center}
.res-form fieldset{border:0;padding:0;margin:0 0 18px}
.res-form legend{font-size:var(--fs-piccolo);font-weight:600;margin-bottom:10px;letter-spacing:.005em}
.res-stelle{display:flex;gap:8px}
.res-stelle label,.res-torn label{flex:1;margin:0 !important;cursor:pointer}
.res-stelle input,.res-torn input{position:absolute;opacity:0;pointer-events:none}
.res-stelle span,.res-torn span{display:flex;align-items:center;justify-content:center;height:52px;border:1.5px solid var(--line);border-radius:12px;
  font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-titoletto);background:#fff;transition:all .15s}
.res-torn{display:flex;gap:8px;flex-wrap:wrap}
.res-torn legend{width:100%}
.res-torn span{font-size:var(--fs-testo-s);height:46px}
.res-stelle input:checked + span,.res-torn input:checked + span{background:var(--blu);border-color:var(--blu);color:#fff}
.res-stelle input:focus-visible + span,.res-torn input:focus-visible + span{box-shadow:0 0 0 4px rgba(var(--alone,6,14,208),.18)}
.res-scala{display:flex;justify-content:space-between;margin-top:6px}
@media (max-width:700px){
  .res-testa{flex-direction:column}
  .res-testa form,.res-testa .btn{width:100%}
  .res-sp{flex-wrap:wrap}
  .res-sp form{width:100%}.res-sp form .btn{width:100%}
  .res-stelle span{height:48px}
}
@media (max-width:700px){.res-num{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.res-num .kpi{padding:12px 8px}.res-num .kpi .l{font-size:var(--fs-micro);letter-spacing:.03em}}

/* ---------- 9.70 · l'area del relatore: una parte fissa, un riquadro per congresso ---------- */
.rel-sez{font-size:var(--fs-piccolo);font-family:Montserrat,sans-serif;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin:30px 0 12px}

.rel-carica{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rel-carica input[type=file]{max-width:100%;font-size:var(--fs-piccolo)}
.rel-chiusi .rel-riga{display:flex;justify-content:space-between;gap:12px 20px;align-items:center;flex-wrap:wrap;
  padding:12px 0;border-top:1px solid var(--line)}
.rel-riga-az{display:flex;gap:8px;flex-wrap:wrap}

@media (max-width:700px){
  .rel-riga-az, .rel-riga-az .btn{width:100%}
}
.area-rel-testa{display:flex;justify-content:space-between;align-items:center;gap:10px 16px;flex-wrap:wrap;margin-bottom:10px}
.rel-scegli{position:relative;overflow:hidden;cursor:pointer}
.rel-scegli input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;font-size:0}
.rel-carica.js .rel-invia{display:none}
.rel-carica.in-corso{opacity:.6;pointer-events:none}
.rel-carica .rel-nome:empty{display:none}
.rel-cv form.rel-carica{margin-top:6px}
/* 10.42: gli impegni del relatore, dal programma, in sola lettura */
.rel-impegni{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.rel-imp{display:flex;flex-direction:column;gap:2px;padding:8px 12px;margin-top:6px;background:var(--soft);border-radius:var(--r)}
/* due pannelli affiancati partono alla stessa altezza: la regola
   «.panel + .panel» spingeva giù il secondo di 14px */
.ext-shell .g2 > .panel + .panel{margin-top:0}
@media (max-width:900px){ .ext-shell .g2 > .panel + .panel{margin-top:14px} }
/* 9.74 · i ruoli con il link, in Ruoli e permessi */
.osp-griglia{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:14px}
.osp-voce{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:var(--soft)}
.osp-testa{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.osp-voce dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:0}
.osp-voce dt{color:var(--muted)}
.osp-voce dd{margin:0}
@media (max-width:700px){.osp-voce dl{grid-template-columns:1fr}.osp-voce dt{margin-top:4px}}
/* 9.75 · portale Faculty e richieste di partecipazione */
.pf-aperti{margin:6px 0 0;padding-left:18px;line-height:1.7;font-size:var(--fs-testo-s)}
.cand-riga{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-top:12px;background:#fff}
.cand-riga .cand-testa{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}
.cand-riga dl{display:grid;grid-template-columns:max-content 1fr;gap:3px 12px;margin:10px 0 0}
.cand-riga dt{color:var(--muted)}
.cand-riga dd{margin:0;overflow-wrap:anywhere}
.cand-az{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;margin-top:12px}
.cand-az details{flex:1;min-width:220px}
.cand-az details summary{cursor:pointer}
@media (max-width:700px){.cand-riga dl{grid-template-columns:1fr}.cand-riga dt{margin-top:4px}}
.rel-riga-attesa{padding:8px 0;border-bottom:1px solid var(--line)}
.ext-shell .form label.pf-privacy{display:flex;gap:12px;align-items:flex-start;font-weight:400;font-size:var(--fs-secondario);cursor:pointer}
.ext-shell .form label.pf-privacy input[type=checkbox]{flex:none;width:20px;height:20px;min-height:0;margin:1px 0 0;padding:0;accent-color:var(--blu,#1a2bb8)}

/* 9.76 — la versione AIFA corretta a mano */
.aifa-tab{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:10px;border:1px solid var(--line);border-radius:var(--r)}
table.aifa-righe{border-collapse:collapse;min-width:1420px;width:100%;table-layout:fixed}
table.aifa-righe th{font-size:var(--fs-piccolo);text-align:left;padding:8px 6px;background:var(--soft,#F4F6FB);position:sticky;top:0}
table.aifa-righe td{padding:4px;vertical-align:top;border-top:1px solid var(--line)}
table.aifa-righe input,table.aifa-righe textarea{width:100%;margin:0;font-size:var(--fs-piccolo);padding:6px 7px}
table.aifa-righe textarea{min-height:38px;resize:vertical}
table.aifa-righe .c-g{width:140px}table.aifa-righe .c-s{width:190px}table.aifa-righe .c-sala{width:100px}
table.aifa-righe .c-mod{width:160px}table.aifa-righe .c-ora{width:105px}table.aifa-righe .c-tipo{width:110px}
table.aifa-righe .c-t{width:320px}table.aifa-righe .c-rel{width:190px}table.aifa-righe .c-az{width:78px;white-space:nowrap}
table.aifa-righe .c-az .btn{padding:4px 9px;min-width:0}
.aifa-mano{margin-bottom:12px}

/* 9.77 — la società sul programma, e la barra del programma */
.seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.seg button{border:0;background:transparent;padding:7px 14px;font:inherit;font-size:var(--fs-piccolo);font-weight:600;cursor:pointer;color:var(--ink,#1c2033)}
.seg button+button{border-left:1px solid var(--line)}
.seg button.on{background:var(--accent,#0a14c8);color:#fff}
.seg button:disabled{cursor:default;opacity:.6}
.soc-barra{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.prog-barra{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;background:var(--bg,#F4F6FB);border-bottom:1px solid var(--line)}
.prog-cerca{flex:1 1 280px;display:flex;align-items:center;gap:10px}
.prog-cerca input{flex:1;min-width:0;margin:0}
.prog-parti{flex-basis:100%;border-radius:12px}
.prog-parti button{font-weight:500}
input.trovato{background:#fff6c7 !important;box-shadow:0 0 0 2px #f0c400 inset}
.soc-modi{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}
@media (max-width:700px){.seg{border-radius:12px}.seg button{flex:1 1 auto;padding:8px 10px}.soc-barra .seg{width:100%}}
.ses-blocco[hidden],.giornata[hidden],tr.bp-r[hidden],.prog-parti[hidden],.giornata>form[hidden],.soc-parte[hidden],.soc-senza[hidden]{display:none !important}

/* 9.78 — importare i pernottamenti */
.pern-imp summary{cursor:pointer;list-style:none}
.pern-imp summary::-webkit-details-marker{display:none}
.pern-imp-passi{margin:12px 0 10px 18px;padding:0}
.pern-imp-passi li{margin-bottom:12px}
table.pern-imp-tab td{vertical-align:top}
tr.imp-err td{background:#fff3f3 !important}
.t-danger{color:var(--danger,#b3261e)}
#rimb-regole[hidden]{display:none !important}

/* 9.79 — il rimborso spese nella pagina del relatore */
.rimb .rimb-voci td{vertical-align:top}
.rimb .rimb-tot td{border-top:2px solid var(--line)}
.rimb form.rimb-nuova,.rimb form.rimb-invio{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.rimb-dataora{display:flex;gap:8px}.rimb-dataora input[type=date]{flex:1.4}.rimb-dataora input[type=time]{flex:1}
.rimb-km[hidden],.rimb-euro[hidden]{display:none !important}
.rimb-dl{display:grid;grid-template-columns:140px 1fr;gap:6px 14px;margin:6px 0 0}.rimb-dl dt{color:var(--muted,#667)}.rimb-dl dd{margin:0}
input.rimb-appr{width:110px;text-align:right;margin:0}
@media (max-width:700px){.rimb-dl{grid-template-columns:1fr}.rimb-dl dt{margin-top:6px}}

/* 9.80 — lo stato delle voci del Metodo izeos, come nel foglio: fatto, in corso, non serve */
select.mt-stato{border-radius:999px;border:0;padding:5px 26px 5px 12px;font-size:var(--fs-piccolo);font-weight:600;margin:0;min-width:104px;cursor:pointer}
select.mt-stato.s-da_fare{background-color:#EEF1F8;color:#3A4262}
select.mt-stato.s-in_corso{background-color:#fbe7a6;color:#6b4d00}
select.mt-stato.s-fatto{background-color:#d6eecb;color:#2a5b1a}
select.mt-stato.s-non_serve{background-color:#9b1c1c;color:#fff}
tr.mt-non_serve td{opacity:.75}

/* 9.80 — la creazione di un evento in una pagina */
.nuovo-da-riga{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.nuovo-da-riga>div{flex:1 1 320px}.nuovo-da-riga select{flex:1 1 280px;max-width:460px;margin:0}
#nuovo-evento .soc-parte[hidden],#nuovo-evento .soc-senza[hidden]{display:none !important}

/* 9.81 — le notti calcolate dal programma, la proposta al relatore */
.pern-calc summary{cursor:pointer;list-style:none}
.pern-calc summary::-webkit-details-marker{display:none}
.pern-calc-corpo{align-items:start}
.pn-tipi{display:grid;gap:8px;margin:0 0 12px}
.pn-tipo{display:block;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px 10px 36px;position:relative;cursor:pointer;background:#fff;font-weight:400}
.pn-tipo input{position:absolute;left:12px;top:13px;width:18px;height:18px;min-height:0;padding:0;margin:0;appearance:auto;-webkit-appearance:radio;accent-color:var(--accent,#0a14c8)}
.pn-tipo b{display:block}
.pn-tipo span{display:block;font-size:var(--fs-piccolo);color:var(--muted)}
.pn-tipo:has(input:checked){border-color:var(--accent,#0a14c8);background:#F4F5FF}
.pn-et{display:block;font-weight:600;font-size:var(--fs-piccolo);margin:0 0 6px}
.pn-seg{margin:0 0 12px}
.pn-seg label{margin:0;cursor:pointer;font-weight:600}
.pn-seg label+label{border-left:1px solid var(--line)}
.pn-seg input{position:absolute;opacity:0;width:1px;height:1px}
.pn-seg span{display:block;padding:7px 16px;font-size:var(--fs-piccolo)}
.pn-seg input:checked+span{background:var(--accent,#0a14c8);color:#fff}
.pn-seg input:focus-visible+span{outline:2px solid var(--accent,#0a14c8);outline-offset:-2px}
.pern-regola:has(input[name=tipo][value=fisse]:checked) .pr-viaggio,
.pern-regola:has(input[name=tipo][value=viaggio]:checked) .pr-fisse{display:none}
.pn-avv{display:block;margin-top:4px;font-size:var(--fs-micro);color:#7a4e0c;background:var(--warn-soft);border-radius:6px;padding:3px 7px;width:fit-content}
.pn-spetta{display:inline-flex;align-items:center;gap:8px;background:var(--ok-soft);color:var(--ok);border-radius:10px;padding:6px 12px;font-weight:700;margin:8px 0 2px}
.pn-passo{display:flex;gap:10px;align-items:center;margin:14px 0 8px}
.pn-passo .n{flex:0 0 26px;height:26px;border-radius:50%;background:var(--accent,#0a14c8);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}
.pn-scelta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 10px}
.pn-scelta .scelta3{position:relative;cursor:pointer;padding-left:40px;text-align:left;font-weight:400}
.pn-scelta .scelta3 input{position:absolute;left:14px;top:18px;width:18px;height:18px;min-height:0;padding:0;margin:0;appearance:auto;-webkit-appearance:radio;accent-color:var(--accent,#0a14c8)}
.pn-scelta .scelta3 b,.pn-scelta .scelta3 span{display:block}
.pn-scelta .scelta3:has(input:checked){border-color:var(--accent,#0a14c8);box-shadow:0 0 0 2px #DFE2FF;background:#F4F5FF}
.pn-sceglie:not(:has(input[name=opz][value=altre]:checked)) .pn-altre{display:none}
@media (max-width:700px){.pn-scelta{grid-template-columns:1fr}}
.con-unita{display:flex;align-items:center;gap:6px;white-space:nowrap}
.con-unita input{width:5.5em;flex:0 0 auto}
.pern-mod{padding:10px 12px;border-radius:8px;background:#fff7e0;border:1px solid #f0d58a}
.pern-mod-motivo{margin:4px 0 8px;font-style:italic}
.pern-mod-f{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pern-mod-f input[name=risposta]{flex:1 1 280px;min-width:0}
tr.con-modifica td{border-bottom:0}
tr.pern-mod-riga td{padding-top:0}
.pern-perche{max-width:340px}

@media (max-width:700px){
  /* il calcolo delle notti: una scheda per persona, il perché sotto */
  table.pern-calc-tab, table.pern-calc-tab tbody, table.pern-calc-tab tr, table.pern-calc-tab td{display:block;width:auto}
  table.pern-calc-tab tr.testa{display:none}
  table.pern-calc-tab tr{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px}
  table.pern-calc-tab td{padding:2px 0;border:0;text-align:left}
  table.pern-calc-tab td[data-et]{display:inline-block;margin-right:12px}
  table.pern-calc-tab td[data-et]::before{content:attr(data-et) ": ";color:var(--muted)}
  table.pern-calc-tab td.pcalc-perche{margin-top:4px}
  /* la colonna Stato: i pulsanti su una riga, le note sotto */
  table.pern td[data-et="Stato"]{flex-wrap:wrap}
  table.pern td[data-et="Stato"] > div:not(.stati-pern){flex-basis:100%;padding-left:98px}
  table.pern .stati-pern .pil{white-space:nowrap}
  table.pern tr.pern-mod-riga{border-color:#f0d58a;background:#fffbef}
}
@media (max-width:700px){table.pern-calc-tab tr.imp-err{background:#fff3f3}table.pern-calc-tab tr.imp-err td{background:none !important}}

/* 9.82 — vendite sponsor, sul posto, business plan importato e confronto */
.ok-t{color:var(--ok)}
.sp-nuova summary,.bp-confronto summary{cursor:pointer}
.sp-nuova summary{list-style:none}.sp-nuova summary::-webkit-details-marker{display:none}
.sp-cerca{margin:4px 0 12px}.sp-cerca input,.sp-posto-testa input[type=search]{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:10px;font-size:var(--fs-testo-s)}
.sp-az[hidden],.sp-scheda[hidden]{display:none !important}
table.sp-vend{width:100%;table-layout:fixed;min-width:900px}
table.sp-vend td{vertical-align:top;padding:9px 6px}
table.sp-vend td:first-child b{font-size:var(--fs-secondario)}
table.sp-vend .cel{width:100%}
table.sp-vend .num{text-align:right}
table.sp-vend textarea.sp-note{min-height:38px;resize:vertical;font:inherit;font-size:var(--fs-piccolo);line-height:1.4}
table.sp-vend tr.st-opzionato td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
table.sp-vend tr.st-venduto td:first-child{box-shadow:inset 3px 0 0 var(--ok)}
.sp-azioni .btn{margin:0 0 4px 4px}
.sp-chi{margin-top:4px;line-height:1.4}
.sp-posto-testa{margin-bottom:14px}
.sp-posto{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;align-items:start}
.sp-scheda{margin:0}
.sp-scheda.tutto{border-color:#BFE3CF}
.sp-scheda-testa{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.sp-scheda-testa h3{margin:0;font-size:var(--fs-titoletto)}
ul.sp-diritti{list-style:none;margin:0;padding:0}
ul.sp-diritti li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--soft)}
ul.sp-diritti li:first-child{border-top:0}
ul.sp-diritti li form{margin:0;flex:none}
.sp-spunta{width:34px;height:34px;border:2px solid var(--line);border-radius:9px;background:#fff;font-size:var(--fs-titoletto);font-weight:700;line-height:1;color:#fff;cursor:pointer;padding:0}
ul.sp-diritti li.fatto .sp-spunta{background:var(--ok);border-color:var(--ok)}
ul.sp-diritti li.fatto .sp-d b{color:var(--muted)}
.sp-d{flex:1;min-width:0}
.sp-d b{display:block;font-size:var(--fs-testo-s);line-height:1.4}
.sp-dove{font-size:var(--fs-piccolo);color:var(--blu);margin-top:2px}
.sp-nota{font-size:var(--fs-piccolo);color:#3A4262;margin-top:3px;background:var(--soft);border-radius:7px;padding:6px 8px}
.bp-seg{display:inline-block;margin:3px 0 0 2px;font-size:var(--fs-micro)}
.bp-perc{display:flex;align-items:center;gap:4px;justify-content:flex-end}
.bp-confronto h3{margin-top:0}
.bp-cf-num{gap:10px}
.bp-cf-num>div{background:var(--soft);border-radius:10px;padding:10px 12px}
.bp-cf-num .l{display:block;font-size:var(--fs-piccolo);color:var(--muted)}
.bp-cf-num b{display:block;font-size:var(--fs-titoletto);font-family:Montserrat,sans-serif}
ul.bp-allarmi{list-style:none;margin:12px 0 0;padding:0}
ul.bp-allarmi li{padding:8px 10px;border-radius:8px;margin-bottom:6px;font-size:var(--fs-secondario)}
ul.bp-allarmi li.att{background:var(--warn-soft)}
ul.bp-allarmi li.nota{background:var(--soft)}
ul.bp-allarmi li span{display:block;color:#3A4262;margin-top:2px}
.bp-fogli{display:grid;gap:6px}
.bp-foglio-sc{display:flex;gap:8px;align-items:center;padding:8px 10px;border:1.5px solid var(--line);border-radius:9px;cursor:pointer;font-weight:400}
.bp-foglio-sc.no{opacity:.55;cursor:default}
.bp-modo{display:grid;gap:6px}.bp-modo label{font-weight:400}
table.bp-imp-tab tr.bp-imp-ent td{background:var(--ok-soft)}
@media (max-width:700px){
  .sp-posto{grid-template-columns:1fr}
  .sp-spunta{width:40px;height:40px}
  table.sp-vend{min-width:0}
  table.sp-vend, table.sp-vend tbody, table.sp-vend tr, table.sp-vend td{display:block;width:auto}
  table.sp-vend tr.testa{display:none}
  table.sp-vend tr{border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px}
  table.sp-vend td{padding:4px 0;border:0;text-align:left}
  table.sp-vend td[data-et]:not(:first-child){display:flex;align-items:center;gap:10px}
  table.sp-vend td[data-et]:not(:first-child)::before{content:attr(data-et);flex:none;width:96px;font-size:var(--fs-micro);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
  table.sp-vend .num{text-align:left}
  .sp-azioni{text-align:left !important;padding-top:8px !important}
  .bp-cf-num{grid-template-columns:1fr}
}
.seg a{padding:8px 15px;font-size:var(--fs-piccolo);font-weight:600;color:var(--ink,#1c2033);text-decoration:none}
.seg a+a{border-left:1px solid var(--line)}
.seg a.on{background:var(--accent,#0a14c8);color:#fff}
.sp-viste{margin:0 0 16px}
@media (max-width:700px){.sp-viste{display:grid;grid-template-columns:1fr 1fr;border-radius:12px;width:100%}.sp-viste a{text-align:center;border-left:0 !important;border-top:1px solid var(--line)}.sp-viste a:nth-child(-n+2){border-top:0}.sp-viste a:nth-child(even){border-left:1px solid var(--line) !important}}
.bp-note{margin-top:10px}.bp-note summary{cursor:pointer}
@media (max-width:700px){
  table.sp-vend tr td:first-child{box-shadow:none !important}
  table.sp-vend tr.st-venduto{border-left:4px solid var(--ok)}
  table.sp-vend tr.st-opzionato{border-left:4px solid var(--warn)}
  table.sp-vend textarea.sp-note{min-height:64px}
}
.sp-posto>.sp-scheda{margin:0 !important}
table.sp-vend td[data-et="Quantità"] .cel{text-align:center;padding-left:6px;padding-right:6px}
table.sp-vend td[data-et="Prezzo"] .cel{padding-right:10px}

/* 12.55: il foglio dell'evento ha le sue regole in fondo (table.bpx); qui restano i numeri dei riepiloghi e l'elenco degli eventi */
.bp-saldo .v,.bp-cf-num b,.stat .v.mono{font-family:'Inter Tight',sans-serif;font-variant-numeric:tabular-nums}
.bp-calc{font-family:'Inter Tight',sans-serif;font-variant-numeric:tabular-nums}
@media (max-width:700px){ .panel.bp-foglio > table.bp{display:table;overflow:visible} }

/* 9.86 · Guida sistemisti sul telefono: la tabella dello stato del server ha
   quattro colonne e sul telefono le ultime due (il valore e cosa serve)
   finivano fuori dal riquadro, tagliate senza barra di scorrimento. Ogni
   riga diventa un blocco: pastiglia e nome in alto, valore e nota sotto. */
@media (max-width:700px) {
  .panel table.sis-stato, .panel table.sis-stato tbody { display: block; width: 100%; }
  .panel table.sis-stato tr { display: grid; grid-template-columns: auto 1fr; gap: 3px 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
  .panel table.sis-stato td { display: block; padding: 0 !important; border: 0 !important; white-space: normal; background: transparent !important; }
  .panel table.sis-stato td:nth-child(3), .panel table.sis-stato td:nth-child(4) { grid-column: 2; }
}

/* 9.87 · Utenti: con «Collegamento da copiare» i pulsanti di una riga non
   stavano più in una riga sola e la tabella usciva dalla pagina. Vanno a
   capo, allineati a destra. */
.ut-azioni { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; white-space: normal; }
.ut-azioni form { display: inline; margin: 0; }
/* 9.87 · Pratica grant: le righe di campi dei dati dello sponsor respirano */
.gr-sponsor > .g2, .gr-sponsor > .g3 { margin-bottom: 12px; }

/* ================================================================
   9.88 — SISTEMA UNICO
   Sta in fondo di proposito: vince sulle regole più vecchie scritte sopra,
   che si erano accumulate pagina per pagina. Chi tocca la grafica parte da
   qui e dalle scale in :root, non aggiunge un'altra misura.
   ================================================================ */

/* ---- Menu: i titoli dei gruppi sono etichette sobrie, uguali ovunque.
   Prima erano riquadri colorati, di forme diverse fra menu dell'evento e menu
   generale: a colpo d'occhio sembravano pulsanti. Il colore del gruppo resta,
   ma in un quadratino accanto al nome. */
aside .nav-sez{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;
  margin:var(--sp-5) 0 var(--sp-1);padding:var(--sp-1) 12px;background:none;box-shadow:none;border-radius:0;
  font-family:Montserrat,sans-serif;font-size:var(--fs-micro);font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(255,255,255,.58)}
aside .nav-sez:before{content:'';flex:none;width:7px;height:7px;border-radius:2px;background:var(--sez,#5E6785)}
aside .nav-gruppo > summary.nav-sez{padding-right:28px}
aside .nav-gruppo > summary.nav-sez:hover{color:#fff;filter:none}
aside .nav-gruppo[open] > summary.nav-sez{margin-bottom:var(--sp-1);color:#fff}
aside .fuori-evento{margin:var(--sp-6) 0 0;padding:0 12px;color:rgba(255,255,255,.4);font-size:var(--fs-micro)}
aside nav a, aside .voce > a:first-child{font-size:var(--fs-testo-s);line-height:1.25;padding-top:9px;padding-bottom:9px}
aside .voce > a.on{box-shadow:none}
aside .ev-ctx{margin:var(--sp-3) 0 0}
@media (max-width:900px){
  aside nav a, aside .voce > a:first-child{font-size:var(--fs-testo);padding-top:12px;padding-bottom:12px}
  /* il menu chiuso non deve lasciare l'ombra sul bordo sinistro della pagina */
  aside{box-shadow:none}
  .mnu-chk:checked ~ .shell aside{box-shadow:0 0 40px rgba(0,0,0,.35)}
}

/* ---- Testata della pagina: il titolo ha sempre una riga tutta sua.
   Accanto ai pulsanti un titolo lungo si spezzava su tre righe. */
main .topbar{row-gap:var(--sp-3);column-gap:var(--sp-2);align-items:center}
main .topbar h1{flex:1 1 100%;font-size:var(--fs-titolo-g);line-height:1.25}
@media (max-width:700px){ main .topbar h1{font-size:var(--fs-titolo)} }
/* l'etichetta dell'area ripete il primo pezzo del percorso: dove c'è il
   percorso, basta quello */
main:has(.crumb) .area-tag{display:none}
.crumb{margin-bottom:var(--sp-2)}

/* ---- Campi: tutti con lo stesso riempimento morbido e la stessa altezza.
   Le tendine erano bianche con il bordo accanto a campi grigi senza bordo. */
.form input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]),
.form select,.form textarea,
.sez-c input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]),
.sez-c select,.sez-c textarea{background:var(--soft);border:1.5px solid transparent;border-radius:var(--r);
  font-size:var(--fs-testo);line-height:1.4}
.form input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]),.form select,
.sez-c input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]),.sez-c select{
  min-height:var(--alt-campo);padding:9px 14px}
.form input:focus,.form select:focus,.form textarea:focus,
.sez-c input:focus,.sez-c select:focus,.sez-c textarea:focus{background:#fff;border-color:var(--blu);outline:0;
  box-shadow:0 0 0 4px rgba(var(--alone,6,14,208),.10)}

/* ---- Etichetta, campo, spiegazione: sempre in quest'ordine.
   La regola di prima spingeva il campo in fondo alla riga per allinearlo ai
   vicini con spiegazione: il risultato era un buco fra etichetta e campo. Ora
   la spiegazione sta sotto il campo, i campi partono tutti alla stessa
   altezza e non resta vuoto in mezzo. */
.form .g2,.form .g3,.form .g4,.sez-c .g2,.sez-c .g3,.sez-c .g4{align-items:start}
.form .g2 > label,.form .g3 > label,.form .g4 > label,
.sez-c > label,.sez-c .g2 > label,.sez-c .g3 > label,.sez-c .g4 > label{display:flex;flex-direction:column;height:auto;gap:0}
.form .g2 > label > input,.form .g2 > label > select,.form .g2 > label > textarea,
.form .g3 > label > input,.form .g3 > label > select,.form .g3 > label > textarea,
.form .g4 > label > input,.form .g4 > label > select,.form .g4 > label > textarea,
.sez-c label > input,.sez-c label > select,.sez-c label > textarea{order:2;margin-top:7px}
.form .g2 > label > .hint,.form .g3 > label > .hint,.form .g4 > label > .hint,
.sez-c label > .hint{order:3;flex:none;margin:6px 0 0;line-height:1.4}
/* le spunte restano in riga */
.sez-c label.voce,.sez-c label.sala-ck,.sez-c label.spunta-soc{flex-direction:row}

/* ---- Pulsanti: un'altezza sola, così in riga non fanno scalini */
.btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.25}
.btn.sm{min-height:32px}
@media (max-width:700px){ .btn{min-height:44px} .btn.sm{min-height:38px} }

/* ---- Pannelli: stesso respiro dentro e fra uno e l'altro */
.panel{padding:var(--sp-5);margin-bottom:var(--sp-4)}
.panel + .panel{margin-top:0}
.panel > h3:first-child,.panel > h2:first-child{margin-bottom:var(--sp-3)}
@media (max-width:700px){ .panel{padding:var(--sp-4)} }

/* ---- Tabelle: intestazioni leggibili. Le etichette in maiuscolo a 9–10 px
   con molta spaziatura si leggevano a fatica e allargavano le colonne. */
.panel table th{font-size:var(--fs-micro);letter-spacing:.06em;line-height:1.25}
.panel table td{font-size:var(--fs-secondario);line-height:1.4}

/* ---- Programma: l'ora non si taglia più («09:0») */
.cel.ora{width:112px;min-width:112px;font-family:inherit;font-variant-numeric:tabular-nums;font-size:var(--fs-secondario)}
.ses-testa input[type=date].cel{min-width:150px}

/* ---- Faculty: la tabella sta nello schermo, e gli adempimenti si leggono.
   I pallini ○ · ● a 15 px non si distinguevano: ora sono tondini pieni con
   un segno dentro, gli stessi nella tabella e nella legenda. */
table.fac-tab th.col-doc{letter-spacing:.02em;text-transform:none;font-size:var(--fs-micro);font-weight:700;
  min-width:78px;max-width:104px;padding-left:4px;padding-right:4px}
table.fac-tab td.chi{min-width:190px}
.sem{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;
  font-size:0;line-height:1;vertical-align:middle}
.sem:before{font-size:13px;font-weight:700;font-family:'Inter Tight',sans-serif}
.sem.ok{background:#E3F5EC;color:#0F8A4D}.sem.ok:before{content:'✓'}
.sem.warn{background:#FBF1DC;color:#9A6A12}.sem.warn:before{content:'!'}
.sem.danger{background:#FBE9E7;color:var(--danger)}.sem.danger:before{content:'×';font-size:16px}
.sem.vuoto{background:#fff;border:1.5px dashed #C9CEE0}
td.col-doc > .muted:first-child{color:#C9CEE0;font-size:var(--fs-titoletto)}
.legenda-sem{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:var(--sp-3)}
.legenda-sem .sem{margin-right:6px}
/* 10.18: prima «overflow-x:visible» su computer: con molte colonne di
   documenti la tabella usciva dalla pagina a 1280 px e tutta la pagina
   scorreva di lato. Ora scorre la tabella, dentro il suo riquadro. */
@media (min-width:901px){ table.fac-tab{min-width:0} }
.sem.no{background:none;color:#C9CEE0}.sem.no:before{content:'–';font-size:16px}

/* ---- 9.88: i pulsanti «Scarica in Excel». Stanno sulla riga del percorso,
   a destra, piccoli e sempre nello stesso posto: si trovano senza cercarli e
   non rubano spazio al contenuto della pagina. */
.crumb{display:flex;flex-wrap:wrap;align-items:center;column-gap:4px;row-gap:var(--sp-2)}
.esp-azioni{margin-left:auto;display:inline-flex;flex-wrap:wrap;gap:var(--sp-2)}
.esp-riga{display:flex;justify-content:flex-end;margin:0 0 var(--sp-3)}
.esp-btn{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:8px;
  border:1.5px solid var(--line);background:#fff;color:var(--ink) !important;text-decoration:none !important;
  font-family:'Inter Tight',sans-serif;font-size:var(--fs-piccolo);font-weight:600;letter-spacing:0;text-transform:none;white-space:nowrap}
.esp-btn:before{content:'';width:14px;height:14px;flex:none;border-radius:3px;background:#1D6F42;
  -webkit-mask:linear-gradient(#000 0 0);box-shadow:inset 0 0 0 2px #1D6F42}
.esp-btn:hover{border-color:#1D6F42;background:#F2FAF5}
.esp-btn.tutto{background:#1D6F42;border-color:#1D6F42;color:#fff !important}
.esp-btn.tutto:before{background:#fff;box-shadow:none}
.esp-btn.tutto:hover{filter:brightness(1.1)}
.esp-btn.riservato{border-style:dashed;border-color:#B0761A;color:#7A5210 !important}
.esp-btn.riservato:before{background:#B0761A;box-shadow:none}
@media (max-width:700px){
  .esp-azioni{margin-left:0;width:100%}
  .esp-btn{min-height:40px;flex:1 1 auto;justify-content:center}
  .esp-riga{justify-content:stretch}.esp-riga .esp-azioni{width:100%}
}
@media print{ .esp-azioni,.esp-riga{display:none !important} }
.esp-riga{justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}
.esp-riga .area-tag{margin:0}
main:has(.crumb) .esp-riga:not(:has(.esp-azioni)){display:none}

/* 9.89: «In linea / Non in linea» stanno in cima, sotto la Guida. Il filo
   sopra serviva a staccarli dall'account in fondo: qui li separa dal resto
   del menu una linea sotto, e la prima tendina non ha il margine grande dei
   gruppi (arriva subito dopo la Guida). */
aside nav .presenze{margin:0 0 var(--sp-2);padding:0 0 var(--sp-2);border-top:0;border-bottom:1px solid rgba(255,255,255,.09)}
aside nav .presenze .nav-gruppo:first-child > summary.nav-sez{margin-top:var(--sp-1)}
aside nav .presenze .nav-gruppo > summary.nav-sez{margin-top:var(--sp-1);margin-bottom:0}
aside nav .presenze .p-lista{padding-bottom:var(--sp-2)}

/* 9.92: la pagina del codice dell'app (secondo passaggio) */
.dp-card{max-width:440px}
.dp-passi{margin:var(--sp-3) 0;padding-left:20px;line-height:1.55}
.dp-passi li{margin-bottom:6px}
.dp-qr{width:220px;height:220px;margin:var(--sp-3) auto;background:#fff;border-radius:12px;padding:6px;box-sizing:border-box}
.dp-qr svg{width:100%;height:100%;display:block}
.dp-chiave{margin-top:var(--sp-2)}
.dp-chiave code{display:block;margin:8px 0;padding:10px 12px;background:var(--soft);border-radius:8px;font-size:var(--fs-testo);letter-spacing:.06em;word-break:break-all}
.dp-riserve{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:var(--sp-3)}
.dp-riserve code{padding:10px;background:var(--soft);border-radius:8px;text-align:center;font-size:var(--fs-testo);letter-spacing:.08em}

/* 9.95: le note che compaiono secondo la scelta (settore dell'azienda):
   una regola .note con display vince sull'attributo hidden */
.note[data-famiglia][hidden]{display:none}
/* 9.96: «Sono la stessa persona?» — sul telefono le due schede vanno una
   sotto l'altra, e la lineetta fra le due resterebbe sola a destra */
@media (max-width:700px){ #doppioni-tutti .dop-sep{display:none} }

/* ---------- 9.98: la scaletta del programma (proposta A, scelta da Davide) ----------
   La sessione si legge come nel programma stampato; «Modifica» apre i campi.
   L'orario sta una volta sola, nella colonna a sinistra. */
.ses-riga{display:grid;grid-template-columns:96px minmax(0,1fr);gap:var(--sp-4);margin-bottom:var(--sp-4)}
.ses-orario{padding-top:18px;display:flex;flex-direction:column;gap:2px;font-variant-numeric:tabular-nums}
.ses-orario b{font-size:var(--fs-testo);font-weight:600}
.ses-orario span{font-size:var(--fs-piccolo);color:var(--muted)}
.ses-riga .ses-blocco{margin:0}
.ses-modifica{display:none}
.ses-blocco.aperta .ses-lettura{display:none}
.ses-blocco.aperta .ses-modifica{display:block}
.ses-blocco.aperta{border:2px solid var(--blu);box-shadow:0 8px 28px rgba(6,14,208,.14)}
.ses-l-testa{display:flex;align-items:flex-start;gap:var(--sp-4);padding:18px 22px 12px}
.ses-l-tit{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.ses-l-tit h3{font-size:var(--fs-titoletto);margin:0}
.ses-l-meta{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;font-size:var(--fs-secondario);color:#3A4262}
.ses-sala{padding:3px 10px;border-radius:999px;background:var(--blu-soft);font-weight:600;color:var(--ink)}
.ses-avv{display:inline-block;padding:3px 10px;border-radius:999px;font-size:var(--fs-piccolo);font-weight:600;text-decoration:none;white-space:nowrap}
.ses-avv.giallo{background:var(--warn-soft);color:#7A5210}
.ses-avv.rosso{background:var(--danger-soft);color:#A8291D}
.ses-l-arg{font-size:var(--fs-piccolo);color:var(--muted)}
.ses-l-int{border-top:1px solid var(--line)}
.ses-l-r{display:grid;grid-template-columns:56px minmax(0,1fr) minmax(0,260px) 44px;gap:var(--sp-4);align-items:center;padding:10px 22px;border-bottom:1px solid var(--soft);font-size:var(--fs-testo-s)}
.ses-l-r .o{font-weight:600;color:var(--muted);font-size:var(--fs-secondario);font-variant-numeric:tabular-nums}
.ses-l-r .t b{font-weight:600}
.ses-l-r .r{font-size:var(--fs-secondario);min-width:0;overflow:hidden;text-overflow:ellipsis}
.ses-l-r .d{text-align:right;color:var(--muted);font-size:var(--fs-secondario)}
.ses-l-r.evidenzia{background:#FFF8EC}
.ses-l-piede{display:flex;align-items:center;gap:var(--sp-4);padding:10px 22px 14px;font-size:var(--fs-secondario)}
.ses-l-piede a{font-weight:600;text-decoration:none}
.ses-l-piede span{margin-left:auto;font-weight:600}
/* i momenti senza relazioni né moderatori: una riga sottile */
.ses-momento:not(.aperta){background:var(--soft);box-shadow:none;border-color:transparent}
.ses-momento:not(.aperta) .ses-l-testa{align-items:center;padding:12px 18px}
.ses-momento:not(.aperta) .ses-l-tit{flex-direction:row;align-items:center;gap:12px}
.ses-momento:not(.aperta) .ses-l-tit h3{font-size:var(--fs-testo-s)}
.ses-m-barra{display:flex;align-items:center;gap:var(--sp-3);padding:10px 16px;background:#F4F6FB;border-bottom:1px solid var(--line)}
.ses-m-barra .occhiello{color:var(--blu);margin:0}
.ses-m-barra .btn{margin-left:auto}
/* 9.98: sul telefono la barra sta su una riga: la frase di aiuto si toglie */
@media (max-width:700px){ .ses-m-barra .small{display:none} .ses-m-barra .occhiello{font-size:var(--fs-micro)} }
/* in modifica l'ora di fine calcolata si vede solo quando sfora: altrimenti
   era l'orario scritto una seconda volta accanto alle caselle */
.ses-testa .fine:not(.sfora){display:none}
@media (max-width:700px){
  .ses-riga{grid-template-columns:1fr;gap:4px}
  .ses-orario{flex-direction:row;gap:8px;padding-top:0}
  .ses-orario span::before{content:"– "}
  .ses-l-testa{padding:14px 14px 10px}
  .ses-l-r{padding:10px 14px}
  .ses-l-piede{padding:10px 14px 12px}
}
.ses-riga[hidden],.ses-l-r[hidden]{display:none}
.ses-l-r.trovato .t{background:#FFF3C4;border-radius:4px}
@media (max-width:700px){
  .ses-l-r{grid-template-columns:48px minmax(0,1fr) 36px;grid-template-areas:"o t d" ". r r"}
  .ses-l-r .o{grid-area:o}.ses-l-r .t{grid-area:t}.ses-l-r .r{grid-area:r}.ses-l-r .d{grid-area:d}
}

/* 10.1: il pulsante della segreteria izeos nelle pagine pubbliche: si vede,
   ma non ruba la scena alle porte di relatori, fornitori e aziende */
.topnav .destra a.segreteria{border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:6px 14px;color:#fff;
  font-weight:600;font-size:var(--fs-piccolo);white-space:nowrap}
.topnav .destra a.segreteria:hover{background:#fff;color:var(--navy);text-decoration:none}

/* 10.2: la home pubblica di Konnect (allora «izeos Connect»). Il marchio izeos è grande e
   «Connect» gli sta accanto più piccolo; la riga sotto dice a cosa serve.
   I riquadri sono il menu: niente numeri, un titolo, una riga, un pulsante. */
.pb-testa{flex-direction:column;align-items:flex-start;gap:14px}
.pb-marchio{display:flex;align-items:flex-end;gap:8px;margin:0;opacity:0;animation:pb-su .7s .05s ease-out forwards}

.riga-piede{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;text-align:left;max-width:1080px;margin:0 auto}

@media (max-width:700px){ .riga-piede{flex-direction:column;align-items:flex-start} }
/* 10.2: la riga di spiegazione del riquadro si legge sempre, non solo al
   passaggio del mouse (sul telefono il passaggio non c'è) */
.pb-porta .pb-dett{max-height:none;opacity:1;margin-top:8px;color:rgba(255,255,255,.78)}

/* 10.4: il piede è una fascia compatta attaccata alla pagina, con il
   pulsante «Accesso riservato» ben visibile a destra */
.piede-sito{margin-top:0;background:#070926;border-top:1px solid rgba(255,255,255,.08)}
.piede-sito .in{display:flex;align-items:center;justify-content:space-between;gap:18px 28px;flex-wrap:wrap;padding:22px 26px}
.piede-sito .piede-chi{display:flex;align-items:center;gap:14px;font-size:var(--fs-secondario);color:#A8B0DA}
.piede-sito .piede-logo{height:20px;margin:0}
.piede-sito .piede-contatti{display:flex;gap:18px;font-size:var(--fs-secondario)}
/* 11.03 (Pietro, 6/10/2026: «è troppo evidente: togli il bordo bianco stondato, lascia solo il testo»): una riga di testo, non un pulsante */
.piede-sito a.piede-accedi{display:inline-block;color:rgba(255,255,255,.62);font-weight:500;font-size:var(--fs-piccolo);white-space:nowrap;text-decoration:none;padding:10px 0}
.piede-sito a.piede-accedi:hover{color:#fff;text-decoration:underline}
.riga-piede{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;max-width:1080px;margin:0 auto;padding:12px 26px 18px;
  border-top:1px solid rgba(255,255,255,.06);font-size:var(--fs-piccolo);color:#7F88C0;text-align:left}
body.pb-home .pb-hero{margin-bottom:0}
@media (max-width:700px){
  .piede-sito .in{flex-direction:column;align-items:flex-start;padding:20px 16px}
  .piede-sito .piede-chi{flex-direction:column;align-items:flex-start;gap:8px}
  .riga-piede{padding:12px 16px 16px}
}
body:not(.pb-home) .piede-sito{margin-top:40px}

/* 10.5: il marchio Konnect by izeos */
.logo-box img{height:24px;width:auto}
.mob-logo img{height:18px;width:auto}
.topnav .logo img{height:22px;width:auto}
/* 10.6: nel piede il logo izeos bianco si vede (Davide, 27/9) */
.piede-sito .piede-logo{height:30px;width:auto}
@media (max-width:700px){ .piede-sito .piede-logo{height:26px} }
/* 10.7: nella barra laterale Konnect e, sotto, il logo izeos bianco */
.logo-box.logo-pila{flex-direction:column;align-items:flex-start;gap:5px}
.logo-box.logo-pila .lp-konnect{height:19px;width:auto}
.logo-box.logo-pila .lp-izeos{height:11px;width:auto;opacity:.8}
/* 10.8: il marchio più piccolo: contano i riquadri, non il nome (Davide, 27/9) */
.pb-testa{margin-bottom:30px}
/* 10.15: il marchio Konnect nella pagina di accesso */
.auth-marchio{text-align:center;margin:4px 0 6px}
.auth-marchio img{width:min(240px,80%);height:auto}
/* 10.17: il popup della posta da approvare */
dialog.posta-popup{position:fixed;inset:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;border:0;padding:16px;background:rgba(10,14,40,.45);display:flex;align-items:center;justify-content:center;z-index:1000;box-sizing:border-box}
.posta-box{background:var(--card,#fff);border-radius:14px;padding:20px 22px;width:min(560px,100%);max-height:90vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.posta-box h3{margin:0 0 6px}
.posta-az{display:flex;gap:8px;flex-wrap:wrap}
.posta-az .btn{flex:1 1 auto}
.posta-barra{display:flex;gap:6px;flex-wrap:wrap;align-items:baseline}
/* 10.18: gli stati della faculty, contati e filtrabili */
.fac-stati{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.fac-stati .chip{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:99px;border:1px solid var(--line,#DCE0EE);background:var(--card,#fff);color:inherit;text-decoration:none;font-size:.9em}
.fac-stati .chip b{font-variant-numeric:tabular-nums}
.fac-stati .chip.attivo{background:#060ED0;border-color:#060ED0;color:#fff}

/* ---------- 10.20: le tappe del Metodo izeos a tachimetri (app/tappe.php) ---------- */
.tappe-somme{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:2px 0 14px}
.tappe-num{border-radius:12px;padding:10px 14px;background:var(--ok-soft);color:var(--ok)}
.tappe-num span{display:block;font-size:var(--fs-piccolo)}
.tappe-num b{display:block;font-size:22px;line-height:1.25}
.tappe-num.rosso{background:var(--danger-soft);color:var(--danger)}
.tappe-num.giallo{background:var(--warn-soft);color:#7a4e0c}
.tappe-griglia{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}
.tappe-ev{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:inherit;min-width:0}
.tappe-ev:hover{text-decoration:none;border-color:var(--blu)}
.tappe-ev.tappe-rosso{border-color:#EBB4AE}
.tappe-alto{display:flex;gap:12px;align-items:center}
.tappe-tachi{flex:0 0 92px}
.tappe-tachi .fondo{fill:none;stroke:#E8ECF4;stroke-width:8}
.tappe-tachi .arco{fill:none;stroke:var(--ok);stroke-width:8;stroke-linecap:round}
.tappe-rosso .tappe-tachi .arco{stroke:var(--danger)}
.tappe-giallo .tappe-tachi .arco{stroke:#D9941E}
.tappe-tachi .num{font-size:24px;font-weight:700;text-anchor:middle;fill:#1B2240}
.tappe-tachi .sotto{font-size:11px;text-anchor:middle;fill:#6B7390}
.tappe-tx{min-width:0;display:flex;flex-direction:column;gap:3px}
.tappe-tx b{line-height:1.25}
.tappe-pill{display:flex;gap:6px;flex-wrap:wrap;margin-top:3px}
.tappe-linea{position:relative;height:22px;margin:12px 6px 0}
.tappe-linea .asse{position:absolute;top:10px;left:0;right:0;height:2px;background:#D5DAE6}
.tappe-linea i{position:absolute;top:5px;width:12px;height:12px;margin-left:-6px;border-radius:50%;box-sizing:border-box}
.tappe-linea i.fatta{background:var(--ok)}
.tappe-linea i.ritardo{background:var(--danger)}
.tappe-linea i.vicina{background:#D9941E}
.tappe-linea i.dopo{background:#fff;border:2px solid #AEB5C8}
.tappe-linea .oggi{position:absolute;top:0;width:2px;height:22px;margin-left:-1px;background:#1B2240}
.tappe-assi{position:relative;display:flex;justify-content:space-between;font-size:11px;color:#8A91A8;margin:2px 2px 0}
.tappe-assi .oggi{position:absolute;top:0;transform:translateX(-50%);color:#1B2240;font-weight:600}
.tappe-righe{list-style:none;margin:8px 0 0;padding:8px 0 0;border-top:1px solid #EEF1F8;font-size:var(--fs-secondario)}
.tappe-righe li{padding:2px 0;line-height:1.35}
.tappe-righe li.ritardo{color:var(--danger)}
.tappe-righe li.vicina{color:#7a4e0c}
.tappe-righe li.dopo,.tappe-righe li.altre{color:#6B7390}
.tappe-verdi{margin:12px 0 0;font-size:var(--fs-secondario);line-height:1.8}

@media (max-width:600px){
  .tappe-griglia{grid-template-columns:1fr}
  .tappe-num b{font-size:19px}
  .tappe-num{padding:9px 11px}
}

/* ---------- 10.20: barra negli Eventi, Quadro degli eventi, Riunioni ---------- */
.tappe-barra{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:12px 16px;border-radius:12px;margin-bottom:16px;background:var(--ok-soft);color:var(--ok)}
.tappe-barra.rosso{background:var(--danger-soft);color:var(--danger)}
.tappe-barra:hover{text-decoration:none;filter:brightness(.98)}

.riu-convoca{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:14px}
.riu-convoca label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-piccolo);color:var(--muted)}
.riu-punto{padding:10px 0;border-top:1px solid #EEF1F8}
.riu-punto:first-of-type{border-top:0}
.riu-punto-t{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.riu-punto form{margin-top:6px}
.riu-n{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--blu-soft);color:var(--blu);font-size:12px;font-weight:700}
.riu-nuovo{margin-top:12px}.riu-nuovo summary{list-style:none;display:inline-block}
.riu-nuovo summary::-webkit-details-marker{display:none}
.riu-form{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.riu-form label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-piccolo);color:var(--muted)}
.riu-due{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.riu-azione{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;margin:0}
.riu-azione legend{font-size:var(--fs-piccolo);color:var(--muted);padding:0 4px}
.riu-bottoni{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.riu-bottoni .btn{justify-content:center;padding-top:12px;padding-bottom:12px}
.riu-comandi{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.riu-comandi form{margin:0}.riu-sposta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.riu-barra{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.riu-crono{font-variant-numeric:tabular-nums;font-weight:700;background:var(--blu-soft);color:var(--blu);padding:3px 10px;border-radius:99px}
.riu-crono .lungo{color:var(--danger)}
.riu-salti{display:flex;gap:5px;flex-wrap:wrap}.riu-salti form{margin:0}
.riu-salto{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:12px;font-weight:600;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;color:#1B2240}
.riu-salto.on{border:2px solid var(--blu);color:var(--blu)}
.riu-salto.deciso,.riu-salto.visto{background:var(--ok-soft);color:var(--ok)}
.riu-salto.rimandato{background:var(--warn-soft);color:#7a4e0c}
.riu-grande{font-size:24px;line-height:1.25;margin:0 0 8px}
.riu-ev{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.riu-ev h3{font-size:var(--fs-secondario);margin:0 0 6px}
.riu-lista,.riu-azioni{list-style:none;margin:0 0 10px;padding:0;font-size:var(--fs-secondario)}
.riu-lista.ok li{color:var(--ok)}
.riu-azioni li{padding:2px 0}.riu-azioni li.fatta{color:var(--ok)}.riu-azioni li.aperta{color:#7a4e0c}
.riu-chiudi{margin:6px 0 20px}
@media (max-width:900px){.riu-ev{grid-template-columns:1fr}}
@media (max-width:600px){

  .riu-grande{font-size:20px}
  .riu-due{grid-template-columns:1fr}
}
@media print{.riu-comandi,.riu-chiudi,.riu-salti form,.riu-form{display:none!important}}
.riu-bottoni.uno{grid-template-columns:1fr}

/* ---------- 10.21: la pagina principale dell'evento (Metodo izeos) ---------- */
.ev-schede{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:-4px 0 16px;padding-bottom:2px}
.ev-schede a{flex:0 0 auto;font-size:var(--fs-secondario);padding:6px 13px;border-radius:99px;border:1px solid var(--line);background:#fff;color:#1B2240;white-space:nowrap}
.ev-schede a:hover{text-decoration:none;border-color:var(--blu)}
.ev-schede a.on{background:var(--blu);border-color:var(--blu);color:#fff;font-weight:600}
@media print{.ev-schede{display:none}}
.mt-cuore{border:1px solid var(--line)}
.mt-cuore.tappe-rosso{border-color:#EBB4AE}
.mt-cuore .tappe-tx b{font-size:var(--fs-testo)}
.mt-numeri2{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:12px}
.mt-numeri2 div{background:#F4F6FB;border-radius:10px;padding:7px 10px}
.mt-numeri2 span{display:block;font-size:var(--fs-piccolo);color:var(--muted)}
.mt-numeri2 b{font-size:var(--fs-secondario)}
details.mt-fase{padding:0;overflow:hidden}
details.mt-fase>summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;cursor:pointer;list-style:none;
  background:linear-gradient(90deg,#E9ECF4,#F6F7FB)}
details.mt-fase>summary::-webkit-details-marker{display:none}
details.mt-fase>summary .n{display:inline-flex;width:22px;height:22px;border-radius:6px;background:var(--navy);color:#fff;
  align-items:center;justify-content:center;font-size:12px;font-weight:700}
details.mt-fase>summary .t{font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-secondario)}
details.mt-fase>summary .mini-bar{display:inline-block;width:80px;height:6px;background:#fff;border-radius:99px;overflow:hidden}
details.mt-fase>summary .mini-bar i{display:block;height:100%}
details.mt-fase>summary .c{font-variant-numeric:tabular-nums;font-size:var(--fs-piccolo);color:var(--muted)}
details.mt-fase>summary::after{content:'▾';margin-left:auto;color:var(--muted)}
details.mt-fase:not([open])>summary::after{content:'▸'}
.mt-voce{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-top:1px solid #EEF1F8}
.mt-pallino{flex:0 0 12px;width:12px;height:12px;border-radius:50%;margin-top:5px;box-sizing:border-box}
.mt-pallino.fatta{background:var(--ok)}.mt-pallino.ritardo{background:var(--danger)}.mt-pallino.vicina{background:#D9941E}
.mt-pallino.dopo{border:2px solid #AEB5C8}.mt-pallino.nonserve{background:#D5DAE6}
.mt-corpo{flex:1;min-width:0}
.mt-tit{font-weight:600;line-height:1.3}
.mt-fatto .mt-tit,.mt-non_serve .mt-tit{color:var(--muted)}
.mt-meta{font-size:var(--fs-secondario);color:var(--muted);margin-top:2px}
.mt-meta.ritardo{color:var(--danger)}.mt-meta.vicina{color:#7a4e0c}.mt-meta.fatta{color:var(--ok)}
.mt-dato{display:inline-block;margin-top:6px;font-size:var(--fs-piccolo);padding:3px 9px;border-radius:8px;background:var(--warn-soft);color:#7a4e0c}
.mt-dato.ok{background:var(--ok-soft);color:var(--ok)}
.mt-nota{margin-top:4px;color:#4A5270}
.mt-azioni{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;margin-top:8px}
.mt-azioni form{margin:0}
.mt-altro>summary{list-style:none;cursor:pointer}.mt-altro>summary::-webkit-details-marker{display:none}
.mt-altro[open]{flex:1 1 100%}
.mt-altro .mt-stato-f,.mt-campi{margin-top:8px}
.mt-campi{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
.mt-campi label,.mt-altro .mt-stato-f label{display:flex;flex-direction:column;gap:3px;font-size:var(--fs-piccolo);color:var(--muted)}
.mt-auto0 .btn{align-self:center}
.mt-filtri{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 12px}
.mt-filtri a{font-size:var(--fs-secondario);padding:5px 12px;border-radius:8px;border:1px solid var(--line);background:#fff;color:#1B2240}
.mt-filtri a.on{border-color:var(--blu);color:var(--blu);font-weight:600}
@media (max-width:600px){
  .mt-voce{padding:12px}
  details.mt-fase>summary{padding:12px}
  .mt-azioni .btn{padding-top:9px;padding-bottom:9px}
}
@media print{.mt-azioni,.mt-filtri{display:none!important}details.mt-fase{break-inside:avoid}}
.riu-volo{margin:0 0 12px}

/* ---------- 10.24: Le mie priorità ---------- */
.pri-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.pri-hd h2{margin:0}
.pri-nuova>summary{list-style:none;cursor:pointer}.pri-nuova>summary::-webkit-details-marker{display:none}
.pri-nuova[open]{flex:1 1 100%}
.pri-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:10px;align-items:end}
.pri-form label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-piccolo);color:var(--muted)}
.pri-form .pri-largo{grid-column:1/-1}
.pri-riga{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid #EEF1F8}
.pri-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pri-tx a{color:var(--navy)}
.pri-num{display:flex;gap:5px;flex-wrap:wrap}.pri-num form{margin:0}
.pri-num button{width:34px;height:34px;border-radius:9px;border:1.5px solid #D5DAE6;background:#fff;color:var(--navy);font-weight:700;font-size:14px;cursor:pointer}
.pri-num button:hover{border-color:var(--blu);color:var(--blu)}
.pri-quad{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}
.pri-q{margin:0}
.pri-qt{display:flex;align-items:center;gap:10px}
.pri-qt h2{margin:0;font-size:var(--fs-titoletto)}
.pri-n{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--navy);color:#fff;font-weight:700}
.pri-it{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid #EEF1F8}
.pri-it form{margin:0}
.pri-ck{width:22px;height:22px;border-radius:6px;border:1.5px solid #AEB5C8;background:#fff;cursor:pointer;margin-top:1px;padding:0}
.pri-ck:hover{border-color:var(--ok);background:var(--ok-soft)}

.pri-late{color:var(--danger);font-weight:600}.pri-soon{color:#8A5A10;font-weight:600}
.pri-altro>summary{list-style:none;cursor:pointer;padding:0 6px;font-weight:700;color:var(--muted)}
.pri-altro>summary::-webkit-details-marker{display:none}
.pri-menu{display:flex;flex-direction:column;gap:6px;margin-top:6px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff;min-width:200px}
.pri-delega{display:flex;gap:6px}

@media (max-width:760px){.pri-quad{grid-template-columns:1fr}.pri-riga{flex-wrap:wrap}.pri-riga .pri-num{margin-left:auto}}
/* 10.24: Oggi, la pagina degli eventi */

.pri-altre{margin-top:8px}.pri-altre>summary{list-style:none;cursor:pointer;display:inline-block}.pri-altre>summary::-webkit-details-marker{display:none}
@media (max-width:600px){.pri-riga .pri-tx{flex:1 1 100%}.pri-riga .pri-num{margin-left:0}.pri-num button{width:44px;height:40px}}
.oggi-piede{color:var(--muted);padding:0 4px}
.tappe-ev.tappe-vuoto{display:flex;flex-direction:column;gap:4px}

/* ---------- 10.25: pagina iniziale e Quadro generale ---------- */
.prog-numeri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}
.prog-numeri div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.prog-numeri span{display:block;font-size:var(--fs-piccolo);color:var(--muted)}
.prog-numeri b{font-size:24px;line-height:1.2}
.prog-numeri .rosso b{color:var(--danger)}.prog-numeri .verde b{color:var(--ok)}
.prog-tipo{font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;background:var(--blu-soft);color:var(--navy);vertical-align:1px}
.ini-due{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:16px}
.ini-pan{margin:0}
.ini-hd{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap}
.ini-hd h2{margin:0;font-size:var(--fs-titoletto)}
.ini-riga{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid #EEF1F8}
.ini-riga:first-of-type{border-top:0}
.ini-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ini-tx a{color:var(--navy);font-weight:600}
.ini-q{white-space:nowrap;text-align:right}
.ini-pr{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;background:var(--navy);color:#fff;font-weight:700;font-size:13px;flex:0 0 26px}
.ini-pr.vuota{background:#fff;color:var(--muted);border:1.5px dashed #AEB5C8}
.ini-av{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--blu-soft);color:var(--navy);font-weight:700;font-size:11px;flex:0 0 28px}
.ini-pers{margin:10px 0 0;padding-top:8px;border-top:1px solid #EEF1F8}
.pri-ok{color:var(--ok)}
.ini-prog .ini-hd{margin:4px 0 10px}
@media (max-width:900px){.ini-due{grid-template-columns:1fr}}
@media (max-width:600px){.ini-riga{flex-wrap:wrap}.ini-q{flex:1 1 100%;text-align:left;padding-left:36px;white-space:normal}.prog-numeri b{font-size:20px}}

/* ---------- 10.26: la riga di icone sotto il logo ---------- */
.nav-icone{display:flex;gap:6px;padding:4px 14px 12px}
.nav-icone a{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;
  color:rgba(255,255,255,.82);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10)}
.nav-icone a:hover{background:rgba(255,255,255,.14);color:#fff;text-decoration:none}
.nav-icone a.on{background:var(--blu);border-color:var(--blu);color:#fff}
.nav-icone svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.nav-icone svg .pieno{fill:currentColor;stroke:none}
.nav-icone .n{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--danger);color:#fff;
  font-size:11px;font-weight:700;line-height:18px;text-align:center;box-sizing:border-box}
.nav-icone a svg{width:22px!important;height:22px!important;min-width:22px}

/* ---------- 10.27: Controllo faculty ---------- */
.fc>summary{cursor:pointer;display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.fc-ok,.fc-warn,.fc-no{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:12px;font-weight:700;color:#fff}
.fc-ok{background:var(--ok)}.fc-warn{background:#D9941E}.fc-no{background:var(--danger)}
.fc-ns{display:inline;margin-left:6px}
.mt-blocco{margin-top:8px;padding:8px 10px;border-radius:10px;background:var(--danger-soft);font-size:var(--fs-secondario)}
.mt-blocco ul{margin:4px 0 6px;padding-left:18px}
.mt-blocco form{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.mt-blocco input[name=forza_motivo]{flex:1 1 220px}
/* 10.29: leggenda della linea del tempo */
.tappe-leggenda{display:flex;gap:12px;flex-wrap:wrap;margin:6px 0 0;color:var(--muted)}
.tappe-leggenda i{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:-1px;margin-right:3px;box-sizing:border-box}
.tappe-leggenda i.fatta{background:var(--ok)}.tappe-leggenda i.ritardo{background:var(--danger)}.tappe-leggenda i.vicina{background:#D9941E}.tappe-leggenda i.dopo{border:2px solid #AEB5C8;background:#fff}
.tappe-linea i{cursor:help}
/* 10.29: il numerino sulle schede dell'evento */
.ev-schede{padding-top:7px}
.ev-schede a{position:relative}
.ev-schede .ev-n{position:absolute;top:-7px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--danger);color:#fff;
  font-size:11px;font-weight:700;line-height:18px;text-align:center;box-sizing:border-box}
.stampe-voce{margin:0;display:flex;flex-direction:column;gap:8px}.stampe-voce h2{margin:0;font-size:var(--fs-titoletto)}.stampe-voce .btn{align-self:flex-start;margin-top:auto}
/* 10.32: «L'ho prenotato io» */
.fc-fuori{display:inline-block;margin-left:6px}
.fc-fuori>summary{list-style:none;cursor:pointer;display:inline-block}.fc-fuori>summary::-webkit-details-marker{display:none}
.fc-fuori[open]{display:block;margin:6px 0 0}
.fc-fuori-f{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px;align-items:end;margin-top:6px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff}
.fc-fuori-f label{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-piccolo);color:var(--muted)}

/* ---------- 10.33: cosa manca, in cima alla pagina e sui campi ---------- */
.da-completare{background:var(--danger-soft);border:1.5px solid var(--danger);border-radius:12px;padding:10px 14px;margin:0 0 16px;color:#7A1F14}
.da-completare b{color:var(--danger)}
.da-completare ul{margin:6px 0 0;padding-left:18px}
.da-completare li{margin:2px 0}
.da-completare a.vai{font-weight:700;color:var(--danger);margin-left:6px;white-space:nowrap}
.da-compilare{outline:2px solid var(--danger);outline-offset:4px;border-radius:8px;position:relative}
.da-compilare-nota{display:block;margin-top:4px;font-size:var(--fs-piccolo);font-weight:700;color:var(--danger)}
.mt-dato.mano{background:#EEF1F8;color:#3B4366}
/* 10.35: le tre risposte al pernottamento */

/* 10.35: «Segna come fatta» è un'azione, non uno stato: non deve sembrare già premuto */
.mt-segna{border:1.5px solid var(--blu);color:var(--blu);background:#fff;font-weight:700}
.mt-segna:hover{background:var(--blu);color:#fff}
/* 10.37: il Controllo faculty dentro l'elenco */
.fc-riep{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.fc-riep>.small.muted:last-child{flex-basis:100%}
.fac-tab td.fc-cella{min-width:150px;font-size:var(--fs-piccolo)}
.fac-tab td.fc-cella .fc-ns,.fac-tab td.fc-cella .fc-fuori{margin-left:0;margin-top:4px}
.fac-tab td.fc-cella .fc-fuori-f{min-width:220px}
.fac-chi .kv td:first-child{width:34%;color:var(--muted)}
/* 10.37: «Cosa le manca» in cima alla pagina del relatore */
.rel-manca{border-left:4px solid var(--danger)}
.rel-manca.ok{border-left-color:var(--ok)}
.rel-manca h3{margin:0 0 6px}.rel-manca ul{margin:0;padding-left:18px}.rel-manca li{margin:3px 0}
.rel-manca a{font-weight:700;color:var(--danger);margin-left:6px}

/* ---------- 10.38: il percorso del rimborso del relatore ----------
   La linea con quattro tappe che porta al semaforo (Pietro, 2/10). I passi
   sotto riusano i blocchi del Percorso (.pc-passo, .pc-num): nuove sono solo
   la linea e il semaforo. In fondo al foglio perché le regole delle tabelle
   per il telefono, più su, hanno specificità alta. */
.rimb-linea{display:flex;align-items:flex-start;margin:10px 0 4px}
.rimb-t{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;min-width:0;text-decoration:none;color:inherit}
.rimb-t::before,.rimb-sem::before{content:"";position:absolute;top:17px;left:-50%;width:100%;height:4px;background:var(--line);z-index:0}
.rimb-t:first-child::before{display:none}
.rimb-t.fatto::before,.rimb-t.ora::before,.rimb-sem.verde::before{background:var(--ok)}
.rimb-t .pc-num{width:38px;height:38px;position:relative;z-index:1;border:3px solid #fff;box-shadow:0 0 0 1px var(--line)}
.rimb-t.fatto .pc-num{background:var(--ok);color:#fff;box-shadow:none}
.rimb-t.ora .pc-num{background:var(--blu);color:#fff;box-shadow:0 0 0 4px var(--blu-soft)}
.rimb-t b,.rimb-sem b{display:block;margin-top:8px;font-family:Montserrat,sans-serif;font-size:var(--fs-secondario)}
.rimb-t .sot,.rimb-sem .sot{display:block;font-size:var(--fs-piccolo);color:var(--muted);margin-top:2px;padding:0 4px}
.rimb-t.fatto .sot{color:var(--ok)}
.rimb-t.ora .sot{color:var(--blu);font-weight:600}
.rimb-sem{flex:none;width:118px;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative}
.rimb-luci{position:relative;z-index:1;background:var(--navy);border-radius:12px;padding:5px 6px;display:flex;gap:5px;border:3px solid #fff}
.rimb-luci i{width:14px;height:14px;border-radius:99px;background:#2a2f55;display:block}
.rimb-sem.rosso .rimb-luci i:first-child{background:#ff4b3e;box-shadow:0 0 10px #ff4b3e}
.rimb-sem.verde .rimb-luci i:last-child{background:#2fd57d;box-shadow:0 0 10px #2fd57d}
.rimb-sem.rosso b{color:var(--danger)} .rimb-sem.verde b{color:var(--ok)}
.rimb-ora{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0 4px;padding:12px 14px;border-radius:var(--r);
  background:var(--danger-soft);font-size:var(--fs-testo-s)}
.rimb-ora.verde{background:var(--ok-soft);color:var(--ok);font-weight:600}
.rimb-ora .btn{margin-left:auto}
.rimb-scade{font-size:var(--fs-piccolo);color:var(--muted);margin:6px 0 18px}
.rimb-passi .pc-passo{border:1px solid var(--line);border-radius:var(--r);background:#fff}
.rimb-passi .pc-passo.dafare{border-left:3px solid var(--blu)}
.rimb-riass{font-size:var(--fs-secondario);color:var(--ink)}
.rimb-agg{margin-top:10px}.rimb-agg summary{cursor:pointer;font-size:var(--fs-secondario)}
.rimb .rimb-agg form.rimb-nuova,.rimb .rimb-agg form{margin-top:10px;padding-top:0;border-top:0}
.rimb .rimb-passi form.rimb-invio{margin-top:6px;padding-top:0;border-top:0}
.rimb-dopo{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px;font-size:var(--fs-piccolo);color:var(--muted)}
.btn.verde{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.verde:hover{filter:brightness(.92);color:#fff}
@media (max-width:600px){
  .rimb-t b,.rimb-sem b{font-size:12px} .rimb-t .sot,.rimb-sem .sot{display:none}
  .rimb-t .pc-num{width:32px;height:32px}
  .rimb-t::before,.rimb-sem::before{top:14px}
  .rimb-sem{width:64px}
  .rimb-ora .btn{margin-left:0;width:100%;text-align:center}
  .rimb .rimb-voci tr:first-child{display:none}
  .rimb .rimb-voci tr{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 0;border-bottom:1px solid var(--line)}
  .rimb .rimb-voci td{display:block;border:0;padding:0}
  .rimb .rimb-voci td:nth-child(2){grid-column:1/-1;order:3}
  .rimb .rimb-voci td:nth-child(3){text-align:right;font-weight:700}
  .rimb .rimb-voci td:nth-child(4){order:4}
  .rimb .rimb-voci td:nth-child(5){order:5;justify-self:end}
  .rimb .rimb-voci tr.rimb-tot td[colspan="2"]:last-child,.rimb .rimb-voci tr td:empty{display:none}
  .rimb-passi .pc-passo{padding:14px 12px;gap:10px}
}

/* 10.39 — «Aggiungi a mano» (A3): lo stesso modulo in Faculty, Viaggi e
   Pernottamenti. Nella riga della Faculty si apre come finestra sopra la
   tabella: nella cella stretta nove campi finivano tagliati. */
.a-mano-testa{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}
.a-mano-testa b{font-family:Montserrat,sans-serif;font-size:var(--fs-testo);color:var(--ink)}
.fac-tab .fc-fuori[open]::before{content:"";position:fixed;inset:0;background:rgba(10,13,49,.35);z-index:80}
.fac-tab td.fc-cella .fc-fuori[open]>form.a-mano{position:fixed;z-index:81;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(560px,92vw);max-height:86vh;overflow:auto;min-width:0;padding:18px;gap:10px;grid-template-columns:1fr 1fr;box-shadow:0 20px 60px rgba(10,13,49,.25)}
.a-mano .btn.primary{grid-column:1/-1;justify-self:start}
@media (max-width:600px){ .fac-tab td.fc-cella .fc-fuori[open]>form.a-mano{grid-template-columns:1fr} }

/* 10.40 (A4): la riga che sostituisce un elenco ripetuto altrove — quanti,
   il totale, e «Apri» verso il posto dove l'elenco vive */
.panel.riga-rimando{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:var(--fs-secondario)}

/* ---------- 10.41: viaggio e pernottamento del relatore a passi ----------
   Stessa linea del rimborso (.rimb-linea) con la tappa finale (.fase-fine);
   una riga che dice cosa tocca al relatore; le scelte come pulsanti grandi;
   «cambiare» si apre sotto in un riquadro con titolo e «Chiudi». */
.fase-fine{flex:none;width:118px;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative}
.fase-fine::before{content:"";position:absolute;top:17px;left:-50%;width:100%;height:4px;background:var(--line);z-index:0}
.fase-fine.verde::before{background:var(--ok)}
.fase-fine .pc-num{width:38px;height:38px;position:relative;z-index:1;border:3px solid #fff;box-shadow:0 0 0 1px var(--line);font-size:18px}
.fase-fine.verde .pc-num{background:var(--ok);color:#fff;box-shadow:none}
.fase-fine b{display:block;margin-top:8px;font-family:Montserrat,sans-serif;font-size:var(--fs-secondario)}
.fase-fine .sot{display:block;font-size:var(--fs-piccolo);color:var(--muted);margin-top:2px}
.fase-fine.verde b{color:var(--ok)}
.rimb-ora.blu{background:var(--blu-soft);color:var(--ink)}
.rimb-ora.attesa{background:var(--soft);color:var(--ink)}
.scelte3{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-flow:dense;gap:10px;margin:12px 0 4px}
.scelte3.due{grid-template-columns:1fr 1fr}
.scelte3>form{margin:0;display:flex}
.scelta3{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;width:100%;padding:14px 16px;border-radius:var(--r);
  border:1.5px solid var(--line);background:#fff;font:inherit;cursor:pointer;color:var(--ink);text-decoration:none;list-style:none}
.scelta3::-webkit-details-marker{display:none}
.scelta3 b{font-family:Montserrat,sans-serif;font-size:var(--fs-testo)}
.scelta3 span{font-size:var(--fs-piccolo);color:var(--muted)}
.scelta3:hover{border-color:var(--blu)}
.scelta3.si{border-color:var(--ok);background:var(--ok-soft)} .scelta3.si b{color:var(--ok)}
.scelta-apri[open]{grid-column:1/-1}
/* aperta, il pulsante lascia il posto al riquadro, che ha il suo titolo e «Chiudi» */
.scelta-apri[open]>summary.scelta3{display:none}
.scelta-apri[open]>.sotto{margin-top:0}
.scelte3>.scelta-apri:not([open]){display:flex}
.sotto{border:1.5px solid var(--blu);border-radius:var(--r);padding:16px;margin:10px 0 4px;background:#fff}
.sotto-testa{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:10px}
.sotto-testa b{font-family:Montserrat,sans-serif}
.limiti{width:100%;border-collapse:collapse;margin:8px 0}
.limiti td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top;font-size:var(--fs-secondario)}
.limiti td:first-child{font-weight:700;white-space:nowrap}
.limiti .lim{font-weight:700;text-align:right;white-space:nowrap}
.riass{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0}
.riass div{background:var(--soft);border-radius:var(--r);padding:10px 12px}
.riass span{display:block;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.riass b{font-family:Montserrat,sans-serif}
.link-piu{font-size:var(--fs-secondario);margin-top:12px} .link-piu summary{cursor:pointer;font-weight:700}
.proposta-box{background:var(--soft);border-radius:var(--r);padding:12px 14px;white-space:pre-line;font-size:var(--fs-secondario);margin:10px 0}
#viaggio,#pernottamento{margin-bottom:var(--sp-5)}
@media (max-width:600px){
  .fase-fine{width:64px} .fase-fine .sot{display:none} .fase-fine b{font-size:12px}
  .fase-fine::before{top:14px} .fase-fine .pc-num{width:32px;height:32px}
  .scelte3,.scelte3.due,.riass{grid-template-columns:1fr}
  .limiti td{display:block;border:0;padding:2px 0} .limiti tr{display:block;padding:8px 0;border-bottom:1px solid var(--line)} .limiti .lim{text-align:left}
  .rimb-linea.lunga .rimb-t:not(.ora) b{visibility:hidden}
  .rimb-linea.lunga .rimb-t.ora b{white-space:nowrap}
}

/* 10.42 — i titoli dei riquadri del relatore: un po' più grandi, con l'icona
   in un quadratino azzurro (relb_ico); le scritte di sezione nel blu */
h3.tit-ico{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:20px;margin:0 0 14px}
h3.tit-ico .ico{flex:none;width:40px;height:40px;border-radius:12px;background:var(--blu-soft);display:flex;align-items:center;justify-content:center}
h3.tit-ico .ico svg{width:22px;height:22px;fill:none;stroke:var(--blu);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rel-sez{color:var(--blu);font-size:13px;letter-spacing:.14em;margin-top:34px}
@media (max-width:600px){h3.tit-ico{font-size:18px;gap:10px}h3.tit-ico .ico{width:34px;height:34px;border-radius:10px}h3.tit-ico .ico svg{width:19px;height:19px}}

/* 10.43 — I suoi attestati, nella pagina del relatore: una riga per congresso */
.att-riga{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;margin-top:6px;background:var(--soft);border-radius:var(--r)}
.att-riga>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.att-az{display:flex;gap:8px;flex-wrap:wrap}

/* 10.44 — il riepilogo del rimborso come un documento formale (grafica approvata) */
.fatt{background:#fff;border:1px solid #cfd5e6;border-radius:6px;padding:28px 30px;margin:12px 0 14px;box-shadow:0 8px 30px rgba(10,13,49,.10);color:#0A0D31;font-size:13px;line-height:1.45}
.fatt-testa{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-bottom:3px solid #0A0D31;padding-bottom:14px}
.fatt-marchio{font-family:Montserrat,sans-serif;font-weight:800;font-size:26px;letter-spacing:-.02em}
.fatt-org{font-size:11.5px;color:#4a5370;margin-top:4px}
.fatt-doc{text-align:right}.fatt-tipo{font-family:Montserrat,sans-serif;font-weight:700;font-size:16px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.fatt table{width:auto;border-collapse:collapse}.fatt td,.fatt th{border-bottom:0}
.fatt .fatt-doc table{margin-left:auto;font-size:12px}.fatt .fatt-doc td{padding:1px 0 1px 14px}.fatt-doc td:first-child{color:#4a5370}
.fatt-due{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
.fatt-box{border:1px solid #cfd5e6;border-radius:4px;padding:10px 12px}
.fatt-et{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:#4a5370;font-weight:700;margin-bottom:4px}
.fatt-scorre{overflow-x:auto}
.fatt .fatt-righe{width:100%;font-size:12.5px}
.fatt-righe th{background:#0A0D31;color:#fff;font-weight:600;text-align:left;padding:7px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.fatt .fatt-righe td{padding:7px 8px;border-bottom:1px solid #e3e7f1;vertical-align:top}
.fatt-righe .r,.fatt-tot td:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.fatt-sotto{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-top:14px}
.fatt-pag{font-size:12.5px}
.fatt .fatt-tot{margin-left:auto;min-width:300px;font-size:13px}.fatt .fatt-tot td{padding:5px 0 5px 16px}
.fatt .fatt-grande td{border-top:2px solid #0A0D31;font-weight:800;font-size:15px;font-family:Montserrat,sans-serif}
.fatt-dich{font-size:12px;margin:16px 0 12px;border-top:1px solid #e3e7f1;padding-top:12px}
.fatt-firme{display:grid;grid-template-columns:200px 1fr;gap:16px;align-items:start}
.fatt-campo{border-bottom:1px solid #0A0D31;padding:6px 0;margin-top:24px}
.fatt-piede{margin-top:16px;padding-top:8px;border-top:1px solid #e3e7f1;font-size:10.5px;color:#6b7390;text-align:center}
.firma-box{border:1.5px dashed var(--blu);border-radius:6px;padding:8px 10px;background:#f7f8fc}
.firma-testa{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11.5px;color:#4a5370}
.firma-segno{width:100%;height:110px;display:block;background:#fff;border-radius:4px;margin:6px 0;cursor:crosshair}
.firma-linea{font-size:11px;color:#4a5370;border-top:1px solid #cfd5e6;padding-top:5px}
@media (max-width:600px){.fatt{padding:16px 12px}.fatt-due,.fatt-firme{grid-template-columns:1fr}.fatt-doc{text-align:left}.fatt .fatt-doc table{margin-left:0}
  .fatt .fatt-tot{min-width:0;width:100%;margin-left:0}.fatt-righe{min-width:560px}}

/* 10.44 — il programma in parallelo (grafica approvata) */
/* (non usato) */
.par-scorre{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.par{display:grid;position:relative}
.par-ore{position:relative;border-right:1px solid var(--line)}
.par-ore span{position:absolute;right:8px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.par-sala{position:relative;border-right:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,transparent 0 33px,var(--line) 33px 34px);background-position:0 44px;background-repeat:no-repeat}
.par-sala:last-child{border-right:0}
.par-nome{height:44px;display:flex;align-items:center;gap:8px;padding:0 12px;font-family:Montserrat,sans-serif;font-weight:700;font-size:14px;border-bottom:1px solid var(--line);background:var(--soft);position:sticky;top:0}
.par-nome span{font-weight:400;font-size:12px;color:var(--muted)}
.par-ses{position:absolute;left:6px;right:6px;border-radius:10px;padding:8px 10px;overflow:hidden;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink)}
.par-ses{background:var(--blu-soft);border-left:4px solid var(--blu)}
.par-ses:hover{box-shadow:0 0 0 2px var(--blu)}
.par-ses b{font-family:Montserrat,sans-serif;font-size:13.5px}
.par-ses span{font-size:12px;color:var(--muted)}
.par-ses .par-mod{color:var(--ink)}
.par-ses.pausa{background:var(--soft);border-left-color:var(--line)}
.par-ses.avviso{border-left-color:var(--warn,#c47f00);background:#fff6e0}
.par-ses .par-avv{color:#8a5a00;font-weight:600}

.ses-l-r{cursor:pointer}.ses-l-r:hover{background:var(--soft)}
.dt-filtri{margin:4px 0 12px}
.dt-grp{border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px;overflow:hidden;background:#fff}
.dt-pers{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;background:var(--soft);border-bottom:1px solid var(--line)}
.dt-pers a{color:var(--ink);font-family:Montserrat,sans-serif;font-size:16px}
.dt-pers .pill{margin-left:auto}
.dt-riga{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line)}
.dt-riga:last-child{border-bottom:0}
.dt-doc{display:flex;flex-direction:column;gap:2px;min-width:0}.dt-doc span{font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.dt-az{display:flex;gap:6px;justify-content:flex-end;min-width:270px}
@media (max-width:600px){.dt-riga{grid-template-columns:1fr auto}.dt-az{grid-column:1/-1;justify-content:flex-start;min-width:0;flex-wrap:wrap}.dt-pers .pill{margin-left:0}}
.dt-az form{margin:0}.dt-rifiuta{position:relative}.dt-rifiuta>summary{list-style:none}.dt-rifiuta>summary::-webkit-details-marker{display:none}
.dt-rif-f{position:absolute;right:0;top:calc(100% + 6px);z-index:5;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--ombra);padding:10px;display:flex;gap:6px;width:min(360px,80vw)}
.dt-rif-f input{flex:1;padding:6px 8px;border:1.5px solid var(--line);border-radius:8px}

/* 10.45 — il piano hostess (grafica approvata) */
.hp-tab{margin:6px 0 14px}.hp-tab a{text-decoration:none}
.hp-g{margin-bottom:10px}.hp-g a{text-decoration:none}
.hp-dati{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.hp-dati div{background:var(--soft);border-radius:var(--r);padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.hp-dati span{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.hp-dati b{font-family:Montserrat,sans-serif;font-size:18px}.hp-dati a{font-size:12px}
.hp-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0}
.hp-kpi div{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column}
.hp-kpi span{font-size:12px;color:var(--muted);font-weight:600}.hp-kpi b{font-family:Montserrat,sans-serif;font-size:30px;line-height:1.1;margin:4px 0}.hp-kpi i{font-style:normal;font-size:12px;color:var(--muted)}
.hp-kpi div:first-child{background:var(--blu);border-color:var(--blu)}.hp-kpi div:first-child *{color:#fff}
.hp-giorni{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.hp-giorni b{font-family:Montserrat,sans-serif;font-size:16px}
.hp-scorre{overflow-x:auto}
.hp-tab-t{width:100%;border-collapse:collapse;min-width:900px}
.hp-tab-t th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;padding:8px;border-bottom:1px solid var(--line)}
.hp-tab-t td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:13.5px}
.hp-tab-t .c{text-align:center}
.hp-n{display:inline-flex;align-items:center;gap:8px;margin:0}.hp-n b{font-family:Montserrat,sans-serif;min-width:16px}
.hp-n button{width:26px;height:26px;border-radius:8px;border:1px solid var(--line);background:#fff;font-weight:700;cursor:pointer}
td.hp-tl{width:200px;position:relative;background:repeating-linear-gradient(to right,var(--soft) 0 15.38%,#fff 15.38% 30.76%)}
td.hp-tl i{position:absolute;top:calc(50% - 5px);height:10px;background:var(--blu);border-radius:5px}
.hp-spenta td{color:var(--muted)}.hp-spenta td.hp-tl i{background:var(--line)}
.hp-tab-t tfoot td{border-bottom:0;padding-top:12px}
.hp-turni{display:flex;flex-direction:column;gap:8px}
.hp-turno{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:center;padding:10px 12px;background:var(--soft);border-radius:var(--r)}
.hp-turno>div:first-child{display:flex;flex-direction:column}.hp-turno>div:first-child span{font-size:12px;color:var(--muted)}
.hp-chip{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.hp-chip>form,.hp-chip>span{margin:0;background:#fff;border:1px solid var(--line);border-radius:99px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.hp-chip>form button:not(.btn){border:0;background:none;color:var(--muted);cursor:pointer;font-size:15px;padding:0}
.hp-chip .vuoto{border-style:dashed;color:var(--blu)}.hp-chip .vuoto select{border:0;background:none;color:var(--blu);font-weight:600;padding:2px}
.hp-chip .doppio{background:#fff6e0;border-color:#c47f00;color:#8a5a00}
.hp-foglio{width:100%;border-collapse:collapse}.hp-foglio th,.hp-foglio td{text-align:left;padding:8px;border-bottom:1px solid var(--line)}
@media print{.noprint,.side,.topnav,.crumb{display:none!important}}
@media (max-width:600px){.hp-dati,.hp-kpi{grid-template-columns:1fr 1fr}.hp-turno{grid-template-columns:1fr}}

/* 10.46 — il piano dei videomaker e dei fotografi (grafica approvata) */
.vm-testa{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.vm-testa .seg a{text-decoration:none}
.vm-legenda{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.vm-legenda i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:4px;vertical-align:-2px}
.l-ses{border:1.5px dashed var(--muted)}.l-rip{background:var(--blu-soft);border-left:3px solid var(--blu)}.l-int{background:#e6f4ea;border-left:3px solid var(--ok)}.l-spo{background:#f3e8ff;border-left:3px solid #7c3aed}.l-no{background:#fff1e6;border-left:3px solid #d9480f}
.par-ses.vm-rip{background:var(--blu-soft);border-left:4px solid var(--blu)}
.par-ses.vm-ses{background:#fff;border:1.5px dashed var(--line)}
.vm-ses form{margin:2px 0 0}.vm-add{border:0;background:none;padding:0;color:var(--blu);font-weight:700;cursor:pointer;font:inherit;font-size:12px}
.par-ses.vm-int{background:#e6f4ea;border-left-color:var(--ok)}
.par-ses.vm-spo{background:#f3e8ff;border-left-color:#7c3aed}
.par-ses.vm-no{background:#fff1e6;border-left-color:#d9480f}.vm-no .vm-chi{color:#d9480f!important;font-weight:700}
.vm-chi{color:var(--ink)!important;font-weight:600}.vm-doppio{color:#8a5a00!important}
.vm-angolo{background-color:#fbfcfe}

/* 10.47 — togliere dalla faculty (bozza approvata) */
.tf-det>summary{list-style:none;display:inline-block}.tf-det>summary::-webkit-details-marker{display:none}
.tf-det[open]>summary{display:none}
form.tf{border:1.5px solid var(--danger,#c0392b);border-radius:var(--r);padding:16px;margin-top:8px;background:#fff}
.tf h3{margin-top:0}
.tf-imp{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px}.tf-imp div{background:var(--soft);border-radius:var(--r);padding:8px 12px;display:flex;flex-direction:column}.tf-imp span{font-size:12px;color:var(--muted)}
.tf-scelte{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tf-scelte .scelta3 input[type=radio]{margin:0 0 4px}
.tf-scelte .scelta3:has(input[type=radio]:checked){border-color:var(--ok);background:var(--ok-soft)}
.tf-cerca{margin-top:6px;width:100%;padding:8px;border:1.5px solid var(--line);border-radius:8px}
.tf-come{display:flex;flex-direction:column;gap:4px;margin:12px 0}
.tf-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.tf-banner form{margin:0}
@media (max-width:600px){.tf-scelte{grid-template-columns:1fr}}

/* 10.48 — i viaggi del board (grafica approvata) */
.bc-hero{background:linear-gradient(135deg,#0A0D31,#1b2ab0);color:#fff;border-radius:14px;padding:22px 24px;margin-bottom:14px;display:flex;flex-direction:column;gap:4px}
.bc-hero span{font:700 11px Montserrat,sans-serif;letter-spacing:.14em;opacity:.7}.bc-hero b{font:800 24px Montserrat,sans-serif}.bc-hero i{font-style:normal;opacity:.85}
.bc-t{width:100%;border-collapse:collapse;min-width:760px}.bc-t th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;padding:8px;border-bottom:1px solid var(--line)}
.bc-t td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top;font-size:13.5px}

@media (max-width:600px){.bc-hero b{font-size:20px}}

/* 10.49 — l'import dei componenti del board, con l'anteprima */

.tf-cerca{width:100%;padding:10px;border:1.5px solid var(--line);border-radius:8px}
.tf-sel{display:block;padding:8px;border:1.5px solid var(--line);border-radius:8px;margin-top:4px;min-width:200px}

/* 10.50 — il riquadro del viaggio di un componente, sotto la tabella */
.bv-gestisci{border:1.5px solid var(--blu)}

/* 10.51 — lo storico delle richieste (grafica approvata) */
.st-linea{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--line)}
.st-linea li{position:relative;padding:8px 0 8px 14px;font-size:14px}
.st-linea li::before{content:"";position:absolute;left:-25px;top:13px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--blu)}
.st-linea li.noi::before{background:var(--blu)}.st-linea li.ok::before{background:var(--ok);border-color:var(--ok)}.st-linea li.cambio::before{border-color:#c47f00;background:#fff6e0}
.st-q{display:block;font-size:12px;color:var(--muted);font-family:ui-monospace,Menlo,monospace}
.st-linea s{color:var(--muted)}
.st-rosso td{background:#fff3f2}
.st-det{margin:0 0 12px}.st-det summary{cursor:pointer;margin-bottom:6px}

/* 10.51 — «Le ho assegnate io» nella dashboard */
.ini-senza{margin-top:10px;background:var(--soft);border-radius:var(--r);padding:10px 12px}
.ini-senza summary{cursor:pointer}
.ini-senza-l{display:flex;flex-direction:column;gap:6px;margin:10px 0;max-height:320px;overflow:auto}
.ini-senza-l .check{display:flex;gap:8px;align-items:flex-start}

/* 10.51 — il Piano dei video editor (tabella, bozza approvata) */
.ve-chiusa td{color:var(--muted)}
.ve-sel{padding:6px 8px;border:1.5px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-size:13px}
.ve-f{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0}
.ve-nota{padding:6px 8px;border:1.5px solid var(--line);border-radius:8px;font:inherit;font-size:12.5px;min-width:180px}

/* 10.52 — «Le regole» del piano hostess (bozza approvata) */
.rg{display:flex;flex-direction:column;gap:6px}
.rg-r{display:grid;grid-template-columns:220px 1fr;gap:12px;align-items:center;background:var(--soft);border-radius:var(--r);padding:10px 12px}
.rg-r span{font-size:14px;line-height:2.1}
.rg-r input{width:70px;padding:5px 8px;border:1.5px solid var(--line);border-radius:8px;font:inherit;font-weight:700;text-align:center;background:#fff;margin:0 2px}
@media (max-width:700px){.rg-r{grid-template-columns:1fr;gap:2px}}

/* 10.53 — «I suoi board» nella pagina personale del professionista */
.suoi-board .sb-riga{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:var(--soft);border-radius:var(--r);padding:12px 14px;margin-top:8px}
.suoi-board .sb-az{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* 10.54 — la barra delle pagine pubbliche ha solo il logo e «La tua pagina»:
   sempre su una riga, il logo a sinistra e «La tua pagina» a destra */
.topnav .in{flex-wrap:nowrap!important;justify-content:space-between}
.topnav .destra{margin-left:auto!important;width:auto!important;margin-top:0!important}
.topnav .in > .logo{width:auto!important;flex:0 0 auto!important;justify-content:flex-start!important}
@media (max-width:700px){.topnav .in{min-height:56px;padding:8px 16px!important}.topnav .destra a.riservato{font-size:var(--fs-secondario);color:#B9C0E6}}

/* 10.55 — «Chi è dove» (bozza completa approvata) */
.cd-nav{margin:4px 0 14px;flex-wrap:wrap}.cd-nav a,.cd-come a{text-decoration:none}
.cd-come{margin-left:auto}
.cd-piano{font:700 11px Montserrat,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:14px 0 8px}
.cd-spazi{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.cd-sp{background:var(--soft);border-radius:var(--r);padding:12px;display:flex;flex-direction:column;gap:6px}
.cd-t{display:flex;flex-direction:column;margin-bottom:4px}.cd-t b{font-family:Montserrat,sans-serif}.cd-t span{font-size:12px;color:var(--muted)}
a.cd-p{display:block;background:#fff;border-radius:8px;padding:7px 10px;font-size:13.5px;font-weight:600;border-left:4px solid var(--line);color:var(--ink);text-decoration:none}
a.cd-p:hover{box-shadow:0 0 0 1.5px var(--blu)}
.cd-p i{display:block;font-style:normal;font-weight:400;font-size:12px;color:var(--muted)}
.cd-p.s{border-left-color:#0F8A4D}.cd-p.h{border-left-color:#d6336c}.cd-p.v{border-left-color:var(--blu)}.cd-p.f{border-left-color:#7c3aed}
a.cd-p.no{border:1.5px dashed #d9480f;border-left-width:4px;color:#d9480f;background:#fff8f3}.cd-p.dop{background:#fff6e0;color:#8a5a00}
.vm-legenda .cd-s{background:#0F8A4D}.vm-legenda .cd-h{background:#d6336c}.vm-legenda .cd-v{background:var(--blu)}.vm-legenda .cd-f{background:#7c3aed}.vm-legenda .cd-no{border:1.5px dashed #d9480f}

.pall{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font:700 10.5px Inter,sans-serif;text-decoration:none;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.pall.s{background:#0F8A4D}.pall.h{background:#d6336c}.pall.v{background:#1b2ab0}.pall.f{background:#7c3aed}
.pall.no{background:#fff;color:#d9480f;border:2px dashed #d9480f}.pall.dop{outline:3px solid #f2b705}

.staff-f{margin-top:12px;background:var(--soft);border-radius:var(--r);padding:12px}
.tuo-posto .tp-riga{display:grid;grid-template-columns:260px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.tuo-posto .tp-riga span{display:block;font-size:12.5px;color:var(--muted)}
@media (max-width:700px){.tuo-posto .tp-riga{grid-template-columns:1fr}.cd-come{margin-left:0}.pall{width:24px;height:24px;font-size:9.5px}}
.cd-kpi{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}

/* 10.58 — ambienti di servizio */
.cd-sp.amb{background:#f1faf5}.cd-sp.vuota{border:1.5px dashed var(--line);background:#fff}
.cd-vuoto{font-size:13px;color:var(--muted);padding:6px 2px}
select.tipo-stanza.amb{color:#0F8A4D;font-weight:600}
.cd-dove-altro{margin-top:6px}
.pz-mano{gap:8px;align-items:flex-end;flex-wrap:wrap;margin-top:12px;background:var(--soft);border-radius:var(--r);padding:12px}
.pz-mano label{flex:1 1 140px}

/* 10.60 — i passi delle pagine di carico */
.imp-passi{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}.imp-passi span{background:var(--soft);border-radius:99px;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--muted)}.imp-passi span.on{background:var(--blu);color:#fff}

/* 10.60 — la barra dei filtri, uguale in ogni elenco */
.fb{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 6px}
.fb-c{flex:1 1 240px;min-width:0;padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;font:inherit;background:#fff}
.fb-s{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:99px;padding:3px 6px 3px 12px;font-size:13px;background:#fff;white-space:nowrap;margin:0}
.fb-s span{color:var(--muted)}.fb-s select,.fb-s input{border:0;background:transparent;font:inherit;font-weight:600;color:var(--blu);padding:4px 2px;max-width:170px}
.fb-s.on{border-color:var(--blu);background:var(--blu-soft)}
.fb-x{font-size:13px;color:var(--muted);text-decoration:none;white-space:nowrap}.fb-x:hover{color:var(--danger)}
.fb-n{margin:0 0 12px}
@media (max-width:700px){.fb-s{flex:1 1 calc(50% - 8px)}.fb-s select{max-width:none;flex:1}}

/* 10.61 — «La tua giornata» nella pagina personale del fornitore */
.gt-arrivo{background:#e8f6ef;border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:14px}
.gt-tappa{display:grid;grid-template-columns:62px 18px 1fr;gap:10px;align-items:stretch}
.gt-ora{font-weight:800;font-size:15px;text-align:right;padding-top:10px}.gt-ora small{display:block;font-weight:500;color:var(--muted);font-size:12px}
.gt-linea{position:relative}.gt-linea:before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--line)}
.gt-linea i{position:absolute;left:2px;top:14px;width:14px;height:14px;border-radius:50%;background:var(--blu);box-shadow:0 0 0 3px #fff}
.gt-linea i.h{background:#d6336c}.gt-linea i.f{background:#7c3aed}
.gt-box{background:var(--soft);border-radius:12px;padding:10px 14px;margin:6px 0}.gt-box b{font-size:15px}
.gt-dove{color:var(--muted);font-size:13px}.gt-ref{font-size:13px;margin-top:4px}
.gt-sposta{display:grid;grid-template-columns:62px 18px 1fr;gap:10px}.gt-sposta div:last-child{font-size:12.5px;color:var(--muted);padding:2px 0}
.gt-tappa.pausa .gt-box{background:#fff;border:1.5px dashed var(--line)}.gt-tappa.pausa .gt-linea i{background:#c7cbe0}

/* 10.63 — «＋ Aggiungi» direttamente dall'archivio */
.fig-agg{margin:10px 0}.fig-agg>summary{list-style:none;display:inline-block;cursor:pointer}.fig-agg>summary::-webkit-details-marker{display:none}
.fig-agg-c{background:var(--soft);border-radius:var(--r);padding:12px;margin-top:8px}
.fig-agg-l{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow:auto}
.fig-agg-r{display:flex;gap:10px;align-items:flex-start;background:#fff;border-radius:10px;padding:8px 12px}

/* 10.64 — «Togli dall'evento» */
.fig-az{white-space:nowrap}.fig-togli{display:inline-block;margin-left:6px;position:relative}.fig-togli>summary{list-style:none;cursor:pointer}.fig-togli>summary::-webkit-details-marker{display:none}
.fig-togli form{position:absolute;right:0;top:110%;z-index:5;background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px;min-width:200px;box-shadow:0 8px 24px rgba(10,13,49,.12);white-space:normal}
.fig-euro input{width:96px;padding:6px 8px;border:1.5px solid var(--line);border-radius:8px;font:inherit;text-align:right}
.fig-pag select.st-pagato{color:var(--ok);font-weight:600}.fig-pag select.st-fattura{color:#8a5a00;font-weight:600}

/* 10.67 — «Non posso più venire» */
.inc-riga{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}
.inc-rin>summary{list-style:none;cursor:pointer}.inc-rin>summary::-webkit-details-marker{display:none}
.inc-rin form{display:flex;flex-direction:column;gap:8px;margin-top:8px;min-width:240px}.inc-rin textarea{width:100%;border:1.5px solid var(--line);border-radius:8px;padding:8px;font:inherit}

/* 10.69 — l'Incarico */
.inc-task{display:grid;grid-template-columns:120px 1fr auto;gap:12px;align-items:center;background:var(--soft);border-radius:10px;padding:10px 12px;margin-top:6px}
.inc-task.vuoto{background:#fff;border:1.5px dashed var(--line)}.inc-task .t-ora{font-size:12.5px;color:var(--muted)}.inc-task .t-ora b{color:var(--ink);font-size:14px}
.inc-task form{margin:0}.inc-gg{display:flex;flex-wrap:wrap;gap:8px 14px;padding:6px 0}.inc-gg .check{font-weight:500}
@media (max-width:700px){.inc-task{grid-template-columns:1fr}}

/* 10.70 — «Per persona» in Dove sono tutti */
.cd-persone{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-top:10px}
.cd-pe{background:var(--soft);border-radius:var(--r);padding:10px 12px}.cd-pe-t{display:flex;align-items:center;gap:8px;margin-bottom:6px}.cd-pe-t .btn{margin-left:auto}
.cd-pe-r{display:grid;grid-template-columns:92px 1fr;gap:2px 10px;padding:6px 8px;background:#fff;border-radius:8px;margin-top:4px;text-decoration:none;color:inherit;font-size:13px}
.cd-pe-r b{font-family:ui-monospace,Menlo,monospace;font-size:12.5px}.cd-pe-r i{grid-column:2;font-style:normal;color:var(--muted);font-size:12px}
.bp-auto td{background:#fbfbfe}.bp-auto .pill{text-decoration:none;font-size:11px}

/* 10.74 — le presenze */
.cd-pres-r{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}.cd-pres-f{margin:0}
.cd-pres{border:1.5px solid var(--line);border-radius:99px;padding:4px 10px;font:600 12.5px/1.2 inherit;background:#fff;cursor:pointer;color:var(--ink)}
.cd-pres.presente.on{background:var(--ok);border-color:var(--ok);color:#fff}.cd-pres.assente.on{background:var(--danger);border-color:var(--danger);color:#fff}

/* 10.75 — la conferma d'incarico (anteprima nell'Incarico e nella pagina del fornitore) */
.ci{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 20px;max-width:680px;font-size:13.5px;line-height:1.5}.ci h2{margin:0 0 2px;font-size:19px}.ci-sub{color:var(--muted);font-size:12px}
.ci-k{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-top:12px}.ci-t{width:100%;border-collapse:collapse;margin-top:4px}.ci-t td{padding:5px 6px;border-bottom:1px solid var(--soft);vertical-align:top;font-size:13px}
.ci-cond{font-size:12.5px}.ci-firma{margin-top:14px;background:#e8f6ef;border-radius:10px;padding:10px 12px}

/* 10.76 — Board → Componenti */
tr.bc-apre td{background:#fff8e6}.bc-ruolo{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.bc-rb{display:flex;gap:10px;flex-wrap:wrap}.bc-rb label{display:flex;gap:4px;align-items:center;font-size:13px;font-weight:500}
tr.bc-gia td{opacity:.65}

/* 10.77 — al telefono le parti della barra a segmenti che vanno a capo (gli
   incontri del board, le parti del programma) prendono tutta la riga: prima
   quella scelta si colorava solo per la sua lunghezza e sembrava storta */
@media (max-width:600px){
  .seg.prog-parti{display:flex}
  .seg.prog-parti a,.seg.prog-parti button{flex:1 1 100%;text-align:left}
  .seg.prog-parti a+a,.seg.prog-parti button+button{border-left:0;border-top:1px solid var(--line)}
}

/* 10.77 — il Piano di lavoro del board al telefono: le barre non ci stanno
   (si legge l'elenco, che dice già tutto) e l'elenco torna una tabella vera
   con la spunta stretta e la data a destra; il foglio generale al telefono
   fa delle tabelle un blocco con le colonne quasi uguali, e il testo dei
   passi finiva schiacciato in mezzo */
@media (max-width:600px){
  .piano-board .gantt,.piano-board .gantt-legenda{display:none}
  #piano-elenco{display:table !important;table-layout:fixed;width:100%}
  #piano-elenco td{padding-left:4px;padding-right:4px}
}

/* 10.77 — la data di una barra corta sta fuori dalla barra, a destra, in
   colore scuro: dentro non ci stava e si leggeva solo metà */
.gantt-barra.corta{overflow:visible}
.gantt-barra.corta span{position:absolute;left:100%;margin-left:5px;color:var(--ink,#1c2033)}

/* 10.78 — al telefono le schede di una figura (Le hostess · Dove sono · Piano
   e turni · Ricerca e candidature) vanno a capo: griglia a due colonne, la
   scheda scelta colorata per intero, l'ultima dispari su tutta la riga. Prima
   la riga si spezzava a metà e la scelta si colorava solo per la sua parola. */
@media (max-width:600px){
  .seg.hp-tab{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
  .seg.hp-tab a{background:#fff;border-left:0 !important;text-align:center}
  .seg.hp-tab a.on{background:var(--accent,#0a14c8);color:#fff}
  .seg.hp-tab a:last-child:nth-child(odd){grid-column:span 2}
}

/* 10.80 — la prima pagina divisa per progetto: un riquadro apribile per progetto */
.mp-prog{padding:0}
.mp-prog>summary{list-style:none;cursor:pointer;padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.mp-prog>summary::-webkit-details-marker{display:none}
.mp-prog .mp-nome{font-size:1.05em;overflow:hidden;text-overflow:ellipsis}
.mp-prog .mp-freccia::after{content:"▾"}
.mp-prog[open] .mp-freccia::after{content:"▴"}
.mp-dentro{padding:0 18px 16px;gap:18px;align-items:start}
.mp-riga{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--soft)}
.mp-riga a{min-width:0;color:var(--ink,#1c2033);text-decoration:none}
.ini-due.ini-uno{grid-template-columns:1fr}
@media (max-width:600px){ .mp-dentro{grid-template-columns:1fr} .mp-riga{flex-direction:column;gap:2px} }
.mp-metodo{padding:0 18px 12px}
.mp-metodo .tappe-ev{max-width:520px}
.mp-metodo:empty{display:none}
/* dentro il riquadro del progetto il nome è già scritto nella riga sopra */
.mp-metodo .tappe-tx > span:first-child{display:none}

/* 10.81 (Pietro, 4/10: «da mobile si vede male il logo») — nella barra del
   telefono il logo si stringeva quando il titolo della pagina era lungo
   (Programma — Congresso…): 55 px invece di 108, schiacciato. Il logo non si
   stringe mai e tiene le sue proporzioni; è il titolo che si accorcia. */
.mob-logo{flex:0 0 auto}
.mob-logo img{flex:0 0 auto;max-width:none;object-fit:contain}

/* 10.81 (Pietro, 4/10: «da mobile sono molto ampi i box, rivedi tutta la
   grafica») — il telefono, più compatto. Solo sotto i 600 px: il computer non
   cambia. I campi restano a 16 px di testo (sotto, l'iPhone ingrandisce la
   pagina quando ci si tocca dentro) ma sono meno alti; meno spazio fra un
   campo e l'altro, nei riquadri e fra un riquadro e l'altro; i due pulsanti
   della barra «Salva» stanno affiancati; niente campo più largo del suo
   riquadro; l'accesso usa tutta la larghezza. */
@media (max-width:600px){
  main{padding-left:10px;padding-right:10px}
  .panel{padding:12px;margin-bottom:10px;border-radius:12px}
  .form label,form.form label{margin-bottom:10px}
  .form input:not([type=checkbox]):not([type=radio]),.form select,.form textarea,
  input.cel,select.tf-sel{padding:8px 11px;min-height:38px;font-size:16px}
  .form select{padding-right:32px}
  input,select,textarea{max-width:100%;min-width:0}
  .g2,.g3,.g4{gap:0 10px}
  .hint,.form .small.muted{margin-top:3px}
  h1{font-size:20px}
  .topbar{margin-bottom:10px;padding-bottom:8px}
  .btn{padding:10px 16px}
  .barra-salva{padding:8px 10px;gap:8px;flex-wrap:nowrap}
  .barra-salva .btn,.barra-salva button{flex:1 1 0;min-width:0;padding:10px 8px;width:auto}
  .auth-body{padding:14px}
  .auth-card{width:100%;max-width:none;padding:22px 18px}
}
@media (max-width:600px){
  /* la barra «Salva» è anche una .row, che al telefono va in colonna: qui no */
  .row.barra-salva{flex-direction:row !important;flex-wrap:nowrap;align-items:stretch}
  .row.barra-salva>.btn,.row.barra-salva>button,.row.barra-salva>a{flex:1 1 0 !important;width:auto !important;margin:0 !important;text-align:center;justify-content:center}
}

/* 10.83 — gli elenchi standard: testata, barra dei filtri, tabella che al telefono diventa schede */
.el-testa{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.el-testa .el-tit{min-width:0}
.el-testa .el-tit h1{margin:0 0 2px}
.el-az{display:flex;gap:8px;flex-wrap:wrap}
.el-az .esp-btn{margin:0}
.fb-filtri{display:contents}
.fb-apri{display:none}
@media (max-width:600px){
  .el-az{width:100%}
  .el-az .btn{flex:1 1 auto;justify-content:center;text-align:center}
  .fb .fb-c{flex:1 1 auto}
  .fb-apri{display:inline-flex;flex:0 0 auto;white-space:nowrap}
  .fb-filtri{display:none;width:100%;gap:8px;flex-wrap:wrap}
  .fb.fb-aperto .fb-filtri{display:flex}
}

/* 10.85 — l'annuncio ai fornitori dentro l'evento: le date una per riga, i
   campi corti in coppia anche al telefono, i due pulsanti affiancati */
.date-riga{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.date-riga input[type=date]{flex:1;min-width:0}
.form .date-riga label.obbl{display:flex;align-items:center;gap:6px;margin:0;font-weight:400;font-size:14px;white-space:nowrap;flex:0 0 auto}
.form .date-riga label.obbl input{margin:0;flex:0 0 auto}
.form .lbl{font-family:Montserrat,sans-serif;font-weight:600;font-size:var(--fs-secondario);margin:0 0 6px}
.ann-azioni{gap:8px;flex-wrap:wrap}
@media(max-width:600px){
  .g2.tel2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .ann-azioni{flex-direction:row!important;flex-wrap:nowrap}
  .ann-azioni .btn{flex:1;text-align:center;justify-content:center;padding-left:8px;padding-right:8px}
}

/* 10.86 — la pagina pubblica degli annunci e il modulo dei fornitori, con la
   gerarchia approvata da Pietro il 5/10: l'evento e il compenso grandi, tre
   informazioni con l'etichetta, un pulsante; aperto, i passi numerati. Vale
   anche per la pagina personale del fornitore. */
.g-testa{display:block;margin:0 0 18px}
.g-testa .occ{font:700 12px Montserrat,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--blu)}
.g-testa h2{font:700 28px/1.15 Montserrat,sans-serif;margin:6px 0;letter-spacing:-.01em}
.g-testa p{margin:0;color:var(--muted)}
.g-ann{background:#fff;border:1.5px solid #DDE2EF;border-radius:20px;margin-bottom:14px;overflow:hidden;box-shadow:0 1px 2px rgba(10,13,49,.04),0 10px 30px rgba(10,13,49,.06)}
.g-ann.aperto{border-color:var(--blu)}
.g-su{display:grid;grid-template-columns:1fr auto;gap:18px;padding:22px 24px 16px;align-items:start}
.g-su h3{font:700 21px/1.2 Montserrat,sans-serif;margin:0 0 4px}
.g-su .dove{color:#3A4262;font-size:16px}
.g-euro{text-align:right;white-space:nowrap}
.g-euro b{display:block;font:700 30px/1 Montserrat,sans-serif;color:#0E7A4E}
.g-euro span{font-size:13px;color:var(--muted)}
.g-fatti{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #EEF0F6;margin:0 24px;padding:14px 0}
.g-fatti div{padding-right:12px}
.g-fatti dt{font:700 11px Montserrat,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#6B7490;margin-bottom:3px}
.g-fatti dd{margin:0;font-weight:600;font-size:15px}
.g-fatti .urg dd{color:#8A5200}
.g-giu{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 24px 20px}
.g-giu .btn.primary{padding:12px 22px;font-size:15px}
.g-corpo{border-top:1px solid #DDE2EF;background:#FAFBFE;padding:24px}
.g-blocco{background:#fff;border:1px solid #E3E7F1;border-radius:16px;padding:20px 22px}
.g-blocco h4{font:700 12px Montserrat,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#6B7490;margin:22px 0 10px}
.g-blocco h4:first-child{margin-top:0}
.g-blocco p{margin:0 0 6px}
.g-blocco > .forn-consenso + .forn-consenso{margin-top:8px}
.g-due{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}
.g-due div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #EEF0F6;padding:8px 0;font-size:15px}
.g-due span{color:var(--muted)}.g-due b{font-weight:600;text-align:right}
.g-invio{margin-top:22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.g-invio .btn{padding:14px 26px;font-size:16px}
.g-invio span{color:var(--muted);font-size:14px;max-width:420px}
.g-spont{border:1.5px dashed #C5CCE0;border-radius:18px;padding:20px 24px;display:flex;justify-content:space-between;gap:16px;align-items:center;margin:26px 0 30px}
.g-spont b{font:700 17px Montserrat,sans-serif;display:block;margin-bottom:3px}
.g-spont span{color:var(--muted);font-size:15px}
.forn-figura .figura-n{display:inline-block;margin-top:10px;color:#0E7A4E;font-size:12px}
.forn-et{display:block}
.forn-conferma{flex-direction:column;align-items:flex-start}
.forn-conferma .forn-aiuto{margin-left:38px}
/* le foto: un riquadro grande da toccare, con l'anteprima quando c'è */
.forn-foto{width:64px;height:64px;border-radius:12px;object-fit:cover;display:block;flex:0 0 auto;background:#E2E6F0}
.forn-foto.tonda{width:46px;height:46px;border-radius:50%}
.forn-foto.media{width:84px;height:84px}
.forn-foto.grande{width:200px;height:200px;border-radius:16px}
.chi-foto{display:flex;gap:12px;align-items:center}
.forn-scheda-foto{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start;margin-bottom:14px}
@media(max-width:600px){.forn-scheda-foto{grid-template-columns:1fr;gap:14px}.forn-foto.grande{width:150px;height:150px}}
.forn-foto.vuota{background:#E2E6F0 linear-gradient(135deg,#DDE2EF,#EEF1F8)}
.forn-foto-su,.forn-modulo label.forn-foto-su{display:flex;flex-direction:row;gap:14px;align-items:center;border:1.5px dashed #C5CCE0;border-radius:14px;padding:12px;background:#F6F7FB;font-weight:400;cursor:pointer;margin:0}
.forn-foto-su > span{min-width:0;flex:1}
.forn-foto-su b{display:block;margin-bottom:4px}
.forn-foto-su input[type=file]{font-size:14px;max-width:100%}
.forn-galleria{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.forn-foto-una{display:flex;flex-direction:column;gap:4px;align-items:center;font-weight:400;font-size:13px}
.forn-lingua{display:flex;gap:8px;margin-bottom:6px}
.forn-lingua input,.forn-lingua select{flex:1;min-width:0}
@media(max-width:600px){
  .g-testa h2{font-size:22px}
  .g-su{grid-template-columns:1fr;gap:10px;padding:18px 16px 12px}.g-su h3{font-size:18px}
  .g-euro{text-align:left;display:flex;align-items:baseline;gap:8px}.g-euro b{font-size:26px}
  .g-fatti{grid-template-columns:1fr 1fr;margin:0 16px;gap:12px 0}
  .g-giu{padding:0 16px 16px}.g-giu .btn.primary{width:100%;text-align:center;justify-content:center}
  .g-ann.aperto .g-giu span{display:none}.g-ann.aperto .g-giu{justify-content:flex-end}
  .g-corpo{padding:16px 12px}.g-blocco{padding:16px 14px;border-radius:14px}
  .g-due{grid-template-columns:1fr}
  /* le scelte: due colonne ordinate, larghe uguali e comode da toccare */
  .forn-modulo .forn-multi{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:2px 0 0}
  .forn-modulo .forn-multi label{justify-content:center;text-align:center;margin:0;padding:8px;min-height:44px;font-size:14px;line-height:1.2;border-radius:12px}
  .forn-modulo .forn-sn{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:2px 0 0}
  .forn-modulo .forn-sn label{margin:0;min-height:44px;justify-content:center;border-radius:12px}
  .forn-modulo .forn-c{margin:0}
  .forn-modulo .forn-griglia{gap:14px}
  .forn-conferma .forn-aiuto{margin-left:0}
  /* il pulsante per inviare resta in fondo allo schermo, a portata di dito */
  .forn-modulo .g-invio{position:sticky;bottom:0;margin:16px -12px 0;padding:12px;background:rgba(255,255,255,.97);border-top:1px solid #DDE2EF;box-shadow:0 -6px 18px rgba(10,13,49,.08);z-index:2}
  .forn-modulo .g-invio .btn{width:100%;text-align:center;justify-content:center}
  .forn-modulo .g-invio span{font-size:12.5px}
  .g-spont{flex-direction:column;align-items:stretch;padding:16px}.g-spont .btn{text-align:center;justify-content:center}
}

/* 10.89 · l'anteprima della pagina del componente di un board, per la segreteria */
.bv-ante{border:0;padding:0;margin:0;min-width:0}
.bv-ante-nota{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.bv-ante-nota .btn{flex:0 0 auto}
.bv-ante button:disabled{opacity:.45;cursor:default}

/* 10.92 — il popup della posta mostra l'email intera, la fa sfogliare e cambiare */
.posta-box.largo{width:min(640px,100%)}
.posta-testa{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 8px}
.posta-testa h3{margin:0}
.posta-nav{display:flex;gap:6px}
.posta-nav[hidden]{display:none}
.posta-a{margin:0 0 8px;overflow-wrap:anywhere}
.posta-box [data-foglio]{margin:0 0 14px}
.posta-box [data-foglio][hidden]{display:none}
.posta-link{display:inline-block;background:var(--card,#fff);border:1px dashed var(--line);border-radius:8px;padding:5px 10px;font-size:.92em;color:var(--muted,#5B6485)}
.posta-link i{font-style:normal;opacity:.7}
.posta-campo{border:1px solid var(--line);border-radius:12px;background:var(--soft);padding:12px 14px;display:grid;gap:8px}
.posta-campo textarea{width:100%;max-width:100%;font-size:16px;background:var(--card,#fff);margin:0}
.posta-az a.btn{text-align:center}

/* 10.93 — Comunicazioni → Modelli: tutti i modelli per gruppo (al telefono una tendina) */
.mod-gruppo{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 8px}
.mod-gruppo:last-child{margin-bottom:0}
.mod-gruppo > b{flex:0 0 118px}
.mod-tendina{display:none}
.mod-azioni{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:700px){
  .mod-gruppi{display:none}
  .mod-tendina{display:block}
  .mod-azioni .btn{flex:1 1 100%}
}

/* 10.93 — nel popup della posta l'email si vede con la sua veste */
.posta-ogg{margin:0 0 8px;overflow-wrap:anywhere}
.posta-veste{background:#F4F5FA;border-radius:12px;padding:10px;overflow-wrap:anywhere}
.posta-veste .posta-link-pulsante{cursor:default}

/* 10.94 — il messaggio dopo un salvataggio resta in vista: attaccato in alto
   allo schermo finché serve (lo decide comportamenti.js) */
.note.msg-attaccato{position:sticky;top:12px;z-index:900;box-shadow:0 10px 30px rgba(10,13,49,.22);display:flex;gap:12px;align-items:flex-start;justify-content:space-between}
.note .msg-chiudi{flex:0 0 auto;padding:2px 10px;margin:0 0 0 auto}
.note[data-msg]:not(.msg-attaccato) .msg-chiudi{display:none}
@media (max-width:900px){.note.msg-attaccato{top:68px}}

/* 10.95 — le note sulle relazioni del programma (app/note_relazioni.php).
   Il giallo è quello di «manca il relatore» (.ses-avv.giallo): una nota è una
   cosa in sospeso, non un errore. Le classi cominciano con «rnota»: «.note» è
   già il riquadro dei messaggi. */
.ses-l-r.con-nota{grid-template-columns:56px minmax(0,1fr) minmax(0,260px) 78px}
.ses-l-r .d{white-space:nowrap}
.rnota-stella{appearance:none;border:0;background:none;padding:6px 4px 6px 10px;margin:-6px -4px -6px 0;font-size:19px;line-height:1;color:#B9BFD6;cursor:pointer;vertical-align:middle;font-family:inherit}
.rnota-stella:hover,.rnota-stella:focus-visible{color:#C98A00}
.rnota-stella.piena{color:#C98A00}
.rnota-segno{margin-left:4px;cursor:pointer}
.rnota-box{margin:6px 22px 12px;padding:12px 14px;background:#FFF8E1;border:1px solid #F0D98A;border-radius:10px}
.rnota-box[hidden]{display:none}
.rnota-testa{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline;margin-bottom:8px}
.rnota-box textarea{display:block;width:100%;min-height:62px;font:inherit;font-size:16px;line-height:1.45;padding:8px 10px;border:1px solid #DDD3A8;border-radius:8px;background:#fff;resize:vertical}
.rnota-azioni{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.rnota-letta{margin:0;font-size:var(--fs-testo-s);line-height:1.5}
.manca .chip-manca.nota{background:#FFF3C4;border-color:#E9CE6B;color:#6B4E00}
.manca .chip-manca.nota:hover{background:#FBE9A6}
.manca .chip-manca.nota.on{background:#C98A00;border-color:#C98A00;color:#fff}
.rnota-voce h3 a{color:inherit;text-decoration:none}
.rnota-voce h3 a:hover{text-decoration:underline}
.rnota-voce .prob-azioni form{margin:0}
.rnota-altre{margin:10px 0 0}
.rnota-tit-chiuse{margin:22px 0 10px;font-size:var(--fs-titoletto)}
.rnota-voce.chiusa{opacity:.82}
@media (max-width:700px){
  .ses-l-r.con-nota{grid-template-columns:48px minmax(0,1fr) 72px}
  .rnota-box{margin:6px 14px 12px}
  .rnota-stella{padding:10px 4px 10px 12px;margin:-10px -4px -10px 0;font-size:21px}
  .rnota-voce .prob-azioni,.rnota-voce .prob-azioni form,.rnota-voce .prob-azioni .btn{width:100%}
  .rnota-voce .prob-azioni .btn{text-align:center}
}

/* 10.97 (segnalazione di Pietro, 5/10/2026: «una spunta che non riesco a
   cliccare»). La casella si spuntava, ma nei moduli il campo con il cursore
   dentro diventa bianco (.form input:focus): bianca la casella, bianco il
   segno di spunta, e appena cliccata sembrava vuota. Una casella spuntata
   resta blu anche quando ha il cursore. Sta in fondo perché deve vincere
   sulle regole dei moduli. */
.form input[type=checkbox]:checked:focus,.sez-c input[type=checkbox]:checked:focus,
.forn-modulo .forn-c input[type=checkbox]:checked:focus,input.cel[type=checkbox]:checked:focus,
.cat-voce .pr input[type=checkbox]:checked:focus{background:var(--blu);border-color:var(--blu)}
.form input[type=radio]:focus,.sez-c input[type=radio]:focus,.forn-modulo .forn-c input[type=radio]:focus{background:#fff}

/* 10.97: le due versioni del modulo del viaggio (auto propria / lo prenotiamo
   noi). «hidden» perde contro display:grid e display:block dei moduli. */
.solo-auto[hidden],.solo-prenota[hidden]{display:none!important}
/* la scritta accanto alla casella resta quella di un'etichetta, anche dentro i due span */
label.check > span.solo-auto,label.check > span.solo-prenota,button > span.solo-auto,button > span.solo-prenota{color:inherit;font:inherit;letter-spacing:inherit}

/* 10.97 — il marchio composto «izeos Konnect» (marchio_ik() in core.php):
   izeos per primo e più grande, Konnect dopo. Le misure sono in em: ogni
   posto decide quanto è grande con un font-size, le proporzioni restano. */
.marchio-ik{display:inline-flex;align-items:center;gap:.30em;font-size:34px;line-height:1;vertical-align:middle}
.marchio-ik img.mi,.topnav .logo .marchio-ik img.mi,.auth-marchio .marchio-ik img.mi{height:1em;width:auto;display:block}
.marchio-ik img.mk,.topnav .logo .marchio-ik img.mk,.auth-marchio .marchio-ik img.mk{height:.46em;width:auto;display:block;margin-top:.22em}
.topnav .logo .marchio-ik{font-size:36px}
.pb-marchio .marchio-ik{font-size:96px}
.auth-marchio .marchio-ik{font-size:40px}
@media (max-width:900px){ .pb-marchio .marchio-ik{font-size:64px} }
@media (max-width:700px){ .topnav .logo .marchio-ik{font-size:30px} .pb-marchio .marchio-ik{font-size:46px} .auth-marchio .marchio-ik{font-size:34px} }
@media (max-width:380px){ .topnav .logo .marchio-ik{font-size:26px} .pb-marchio .marchio-ik{font-size:40px} .auth-marchio .marchio-ik{font-size:30px} }

/* 10.98 — la società che propone: le righe cambiate, il pulsante che conta,
   aggiungere in un posto suo */
.prop-barra{flex-wrap:wrap}
.prop-barra .prop-azioni{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.prop-barra .prop-azioni .btn{margin-left:0}
.prop-barra .prop-annulla[hidden]{display:none}
tr.prop-camb > td,.ses-sotto.prop-camb,form.ses-testa.prop-camb{background:#FFF4D6}
tr.prop-camb > td:first-child,.ses-sotto.prop-camb,form.ses-testa.prop-camb{box-shadow:inset 4px 0 0 #E0A800}
.prop-prima,.prop-inviata{margin:6px 0 2px}
form.ses-testa .prop-prima{flex:1 0 100%}
tr.prop-nuova-tit > td{padding:16px 10px 4px;border:0;font-size:var(--fs-micro,11px);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muto,#5B6485)}
tr.prop-nuova > td{background:#FAFBFE;border-top:1.5px dashed #BCC3DC;border-bottom:1.5px dashed #BCC3DC}
button.prop-aggiungi:disabled{background:#E9ECF5;border-color:#E9ECF5;color:#9AA1BC;cursor:not-allowed}
@media (max-width:700px){ .prop-barra .prop-azioni{margin-left:0;width:100%} .prop-barra .prop-azioni .btn{flex:1 1 auto} }

/* 10.99 — «Invia l'accesso»: nella scheda della società, al telefono,
   l'etichetta dello stato va a capo sotto «attivo» invece di uscire dal riquadro */
#utenti-societa table.elenco td{flex-wrap:wrap;row-gap:4px}
#utenti-societa table.elenco td .pill{white-space:normal}
#utenti-societa table.elenco td > div{flex:1 0 100%;min-width:0}

/* 11.00 — il riquadro «L'albergo» dentro «Il viaggio di…» (board): lo stesso fondo dei tre riquadri sotto */
form.bv-albergo{background:var(--soft);border-radius:var(--r);padding:14px;margin:10px 0 12px}

/* 11.01 — l'invito alla faculty.
   Fuori (pagina ?p=invito): un modulo stretto, i passi in cima, le scelte del ruolo grandi da toccare.
   Dentro (Faculty dell'evento): il riquadro richiudibile con le due porte e l'elenco degli inviti. */
.inv-stretta{max-width:720px;margin:0 auto}
.inv-passi{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px;padding:0;list-style:none;font-size:var(--fs-piccolo);color:var(--muted)}
.inv-passi li{background:var(--soft);border-radius:99px;padding:5px 12px}
.inv-passi li.ora{background:var(--blu);color:#fff;font-weight:600}
.inv-stretta .panel{text-align:left}
.inv-stretta .panel[style*="center"] .inv-passi{justify-content:center}
.inv-nota{margin:0 0 16px}
.inv-fisso{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.inv-fisso .pill{white-space:normal;overflow-wrap:anywhere}
.ext-shell .form fieldset.inv-ruoli{border:0;padding:0;margin:0 0 16px;display:grid;grid-template-columns:1fr 1fr;gap:10px;min-width:0}
.ext-shell .form fieldset.inv-ruoli legend{font-weight:600;padding:0;margin:0 0 6px;font-size:var(--fs-secondario)}
.ext-shell .form fieldset.inv-ruoli label{display:flex;flex-direction:row;gap:10px;align-items:center;margin:0;border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;min-height:52px;font-weight:600;cursor:pointer;background:#fff}
.ext-shell .form fieldset.inv-ruoli label:has(input:checked){border-color:var(--blu);background:#EEF0FF}
.ext-shell .form fieldset.inv-ruoli input[type=radio]{flex:none;width:18px;height:18px;min-height:0;margin:0;padding:0;accent-color:var(--blu)}
.inv-stretta .btn.primary{min-height:50px;padding-left:26px;padding-right:26px;margin-top:14px}
.ext-shell .form fieldset.inv-ruoli label span{font-family:"Inter Tight",sans-serif;font-size:var(--fs-testo-s);font-weight:600;color:var(--ink);letter-spacing:0;text-transform:none}
details.inv-riquadro>summary{cursor:pointer;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-titoletto);list-style:none}
details.inv-riquadro>summary::-webkit-details-marker{display:none}
details.inv-riquadro>summary::before{content:"+";display:inline-flex;width:22px;height:22px;border-radius:6px;background:var(--soft);color:var(--blu);align-items:center;justify-content:center;font-weight:700;font-size:16px;flex:none}
details.inv-riquadro[open]>summary::before{content:"–"}
details.inv-riquadro>summary .muted{font-size:var(--fs-secondario);font-weight:400}
details.inv-riquadro[open]>summary{margin-bottom:10px}
.inv-due{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:22px;align-items:start}
.inv-due textarea{width:100%;min-height:118px}
.inv-riga{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:10px}
.inv-riga .inv-come{margin:0;flex:1 1 180px}
.inv-link-testa{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.inv-link-testa form{margin:0}
.inv-link-riga{display:flex;gap:8px;margin:10px 0}
.inv-link-riga input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:var(--r);padding:0 12px;height:var(--alt-campo);font-size:var(--fs-secondario);background:var(--soft);color:var(--ink)}
.inv-tit{margin:22px 0 0}
.inv-tutti{margin:0 0 10px}
.inv-az form{display:inline-block;margin:0 0 0 4px}
.inv-tab td .pill{white-space:normal}
@media(max-width:800px){
  .ext-shell .form fieldset.inv-ruoli{grid-template-columns:1fr}
  .inv-stretta .btn.primary{width:100%;justify-content:center}
  .inv-due{grid-template-columns:1fr}
  .inv-riga .btn,.inv-link-riga .btn,.inv-tutti .btn{width:100%;justify-content:center;min-height:46px}
  .inv-link-riga{flex-direction:column}
  .inv-link-riga input{flex:none;height:46px;font-size:16px}
  .inv-due textarea,.inv-riga select{font-size:16px}
  .hp-kpi.inv-kpi{grid-template-columns:1fr 1fr}
  .inv-tab td.inv-az{display:flex;gap:8px;flex-wrap:wrap}
  .inv-az form,.inv-az>a.btn{flex:1 1 0;margin:0;display:block}.inv-az .btn{width:100%;justify-content:center;min-height:44px;white-space:nowrap;text-align:center}
}

/* 11.01 — Impostazioni, «Modelli da far compilare»: file, indirizzo e pulsante su una riga */
.modello-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0}
.modello-form input[type=file]{flex:1 1 200px;min-width:0;font-size:var(--fs-piccolo)}
.modello-form input[type=url]{flex:1 1 160px;min-width:0;border:1.5px solid var(--line);border-radius:var(--r);padding:0 10px;height:34px;font-size:var(--fs-secondario)}
@media(max-width:800px){.modello-form{flex-direction:column;align-items:stretch;flex:1 1 0;min-width:0}.modello-form input[type=file],.modello-form input[type=url]{flex:none;width:100%}.modello-form input[type=url]{height:44px;font-size:16px}.modello-form .btn{width:100%;justify-content:center;min-height:44px}}

/* ============================================================================
   11.03 — La pagina del congresso del relatore (p=f): tutto in vista, con la
   linea a passi che viaggio, pernottamento e rimborsi avevano già. Qui solo
   le poche cose nuove («rl-»): la striscia in cima, le schede dei documenti,
   i due riquadri affiancati in fondo, il «rilegga prima di inviare».
   ========================================================================== */
.ext-shell:has(.rl-largo){max-width:1100px}
.rl-intro{margin:0 0 14px}
.rl-striscia{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.rl-quanto{display:flex;gap:14px;align-items:center;min-width:0}
.rl-anello{width:54px;height:54px;flex:none}
.rl-anello circle{fill:none;stroke:#EEF1F8;stroke-width:8}
.rl-anello circle.pieno{stroke:var(--blu);stroke-linecap:round}
.rl-striscia.ok .rl-anello circle.pieno{stroke:var(--ok)}
.rl-anello text{font:800 15px Montserrat,sans-serif;fill:var(--ink)}
.rl-quanto b{font:800 18px Montserrat,sans-serif;display:block;line-height:1.2}
.rl-quanto span{font-size:var(--fs-piccolo);color:var(--muted)}
.rl-punti{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.rl-punto{display:inline-flex;gap:7px;align-items:center;border-radius:99px;padding:7px 13px 7px 8px;font-size:var(--fs-piccolo);font-weight:600;background:var(--soft);color:var(--ink);text-decoration:none}
.rl-punto em{width:18px;height:18px;border-radius:50%;border:2px solid #AEB6D6;font-style:normal;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;background:#fff;flex:none}
.rl-punto.ok{background:var(--ok-soft);color:var(--ok)}.rl-punto.ok em{background:var(--ok);border-color:var(--ok)}
.rl-punto:hover{box-shadow:0 0 0 2px var(--blu-soft)}
.rl-sotto-riass{margin:-2px 0 0}
.rl-cvbreve{margin:8px 0 0}
.rl-anche{margin-left:10px}
.rl-cv{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.rl-cv p{margin:4px 0 10px}
.rl-docs{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-top:14px}
.rl-doc{border:1.5px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px;background:#fff;min-width:0}
.rl-doc.ok{border-color:#BFE5D0;background:#F4FBF7}
.rl-doc-testa{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap}
.rl-doc-testa b{font:700 15px Montserrat,sans-serif}
.rl-doc .rd-file a{word-break:break-word}
.rl-doc .rl-motivo{margin:0}
.rl-quante{display:flex;gap:10px;align-items:center;background:var(--blu-soft);border-radius:10px;padding:8px 12px;font-size:var(--fs-piccolo)}
.rl-quante strong{font:800 24px Montserrat,sans-serif;color:var(--blu);line-height:1}
.rl-giu{margin-top:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding-top:6px}
.rl-giu .rel-carica{margin:0}
.rl-chiude{margin:14px 0 0}
/* rileggere prima di inviare (viaggio, pernottamento) */
.rileggi{background:var(--soft);border-radius:var(--r);padding:14px 16px;margin-top:12px}
.rileggi>b{font-family:Montserrat,sans-serif;display:block;margin-bottom:8px}
.rileggi dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0 0 12px;font-size:var(--fs-secondario)}
.rileggi dt{color:var(--muted)}.rileggi dd{margin:0;font-weight:600;word-break:break-word}
.rileggi .az{display:flex;gap:8px;flex-wrap:wrap}
form.rileggendo>button.btn{display:none}
@media (max-width:900px){.rl-punti{margin-left:0}}
@media (max-width:600px){.rileggi dl{grid-template-columns:1fr}.rileggi dd{margin-bottom:6px}.rl-anche{display:block;margin:8px 0 0}}
/* 11.04 — chi è in più congressi: le linguette nella pagina del congresso e
   il riquadro di un congresso nell'indice di «La sua pagina» */
.rl-congressi{display:block;margin:0 0 14px}
.rl-et{display:block;font:700 var(--fs-micro) Montserrat,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--blu);margin:0 0 8px}
.rl-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.rl-tab{display:flex;flex-direction:column;gap:2px;position:relative;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:12px 44px 12px 16px;text-decoration:none;color:var(--ink);min-width:0}
.rl-tab b{font:700 15px Montserrat,sans-serif;overflow-wrap:anywhere}
.rl-tab>span{font-size:var(--fs-piccolo);color:var(--muted)}
.rl-tab i{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-style:normal;font-size:18px;color:var(--blu)}
.rl-tab.qui{border-color:var(--blu);background:var(--blu-soft);padding-right:16px}
.rl-tab .da{color:#7a4e0c;font-weight:600}
.rl-tab .fatto{color:var(--ok);font-weight:600}
a.rl-tab:hover{border-color:var(--blu)}

/* 11.06 — Board → Convocazioni e viaggi: l'avviso per chi è stato aggiunto
   dopo le presenze, «Copia il suo link», e l'elenco a schede al telefono (lo
   standard degli elenchi della 10.83; prima si scorreva di lato). */
.bv-nonconv{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}
.bv-nonconv form{margin:0;flex:0 0 auto}
.bv-copia{background:none;border:0;padding:0;margin:0;font:inherit;color:var(--area);cursor:pointer}
.bv-copia:hover{text-decoration:underline}
.bv-copia.fatto{color:var(--ok);font-weight:600;text-decoration:none}
.bv-copia.errore{color:var(--danger);text-decoration:none}
.bv-link-campo{display:block;width:100%;margin-top:6px;font-family:ui-monospace,Menlo,monospace;font-size:16px}
@media (max-width:900px){
  #bv-elenco td[data-et]{flex-wrap:wrap;row-gap:4px;align-items:flex-start}
  #bv-elenco td[data-et] > div{flex:1 0 100%;margin:0 0 0 122px}
  #bv-elenco td.azioni:not(:has(a, button)){display:none}
  #bv-elenco .bv-dopp{display:none}
  .tab-scorre:has(> #bv-elenco){background:none;overflow-x:visible}
  #bv-elenco, #bv-elenco tr{box-sizing:border-box;width:100%}
  .bv-nonconv form, .bv-nonconv .btn{width:100%}
  .bv-copia{padding:6px 0}
}
/* 11.07 — Posta da approvare: la riga «altre N aspettano un amministratore» e,
   al telefono, l'elenco a schede (come gli elenchi della 10.83) */
.posta-altre{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line)}
@media (max-width:900px){
  .tabella-scorre:has(> #posta-t),.tabella-scorre:has(> #posta-mie-t){background:none;overflow-x:visible}
  #posta-t, #posta-t tr, #posta-mie-t, #posta-mie-t tr{box-sizing:border-box;width:100%}
  #posta-mie-t td.chi{font-weight:700;overflow-wrap:anywhere;padding-left:0}
  #posta-mie-t td[data-et]{overflow-wrap:anywhere}
  #posta-t td.posta-sp{position:absolute;left:14px;top:14px;padding:0}
  #posta-t td.chi{font-weight:700;overflow-wrap:anywhere}
  #posta-t td[data-et]{overflow-wrap:anywhere}
  .posta-elenco .actions .btn{flex:1 1 100%}
}
/* 11.07: una cella «spunta» di un elenco non è la casella disegnata .spunta
   (riga 428): al computer, nel board della 11.06, le prendeva bordo e misura */
@media (min-width:901px){ table td.spunta{width:auto;height:auto;border-width:0 0 1px;border-radius:0;background:none;color:inherit;cursor:auto} }
/* 11.08: le lettere di incarico (Adempimenti → Lettere, Board → Lettere, la
   pagina di chi le riceve). Il foglio ha il suo stile in li_css(), che serve
   anche alla pagina da stampare; qui c'è solo quello che gli sta intorno. */
.li-scelta{display:flex;gap:10px 16px;flex-wrap:wrap;align-items:center;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 14px}
.li-scelta.li-da-decidere{background:#FFF7E0;border-color:#F1D98A}
.li-scelta .li-chi{flex:1 0 100%;font-size:var(--fs-base,15px)}
.li-scelta .li-dom{font-weight:700}
.li-scelta .li-o{display:inline-flex;align-items:center;gap:7px;font-weight:600;margin:0}
.li-scelta .li-imp[hidden]{display:none!important}
.li-scelta .li-imp input{width:112px;padding:8px 10px;border:1.5px solid var(--line);border-radius:9px;font-size:16px;text-align:right;background:#fff}
.li-scelta .li-st{margin-left:auto}
.li-az{display:flex;gap:8px 10px;flex-wrap:wrap;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.li-az form{margin:0}
.li-az .li-nota{flex:1 0 100%}
.li-az .li-carica summary{cursor:pointer;color:var(--blu);list-style:none}
.li-az .li-carica summary::-webkit-details-marker{display:none}
.li-az .li-carica[open]{flex:1 0 100%}
.li-lettera .li-foglio{margin:0}
.li-lui-az form{margin:0;display:inline-block}
.li-firma-box{border:1px dashed var(--line);border-radius:12px;padding:14px 18px;background:#fff;text-align:center;min-width:200px}
.li-firma-box img{max-height:74px;max-width:240px;display:block;margin:0 auto 6px}
@media(max-width:600px){ .li-scelta .li-st{margin-left:0} .li-scelta .li-imp input{width:104px} }
.panel .li-foglio{min-height:0;margin:0}
.li-lui-az{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
/* 11.09: gli avvisi sugli importi delle lettere di incarico (soglia gialla, tetto rosso) */
.li-avviso{border-radius:10px;padding:10px 12px;margin:0 0 14px;line-height:1.5}
.li-avviso.small{margin:6px 0 0}
.li-avviso.li-rosso{background:#FDECEA;border:1px solid #F3B4AD;border-left:4px solid #C0392B;color:#7A1E14}
.li-avviso.li-giallo{background:#FFF7E0;border:1px solid #F1D98A;border-left:4px solid #B9912A;color:#5C4708}
.li-scelta .li-lettere{font-weight:600;color:var(--muted)}
.li-barra{display:block;height:8px;background:#E6E9F4;border-radius:9px;overflow:hidden;min-width:120px}
.li-barra i{display:block;height:100%;border-radius:9px;background:#1E9E62}
.li-barra.li-giallo i{background:#D9A520}.li-barra.li-rosso i{background:#C0392B}
#compensi-t td.c-st{white-space:normal}
#compensi-t td.c-st .pill{margin:2px 0}
#compensi-t tr.compensi-det td{background:var(--soft)}
@media (max-width:900px){ #compensi-t td.chi{padding-left:0} #compensi-t td.c-st{flex-wrap:wrap;gap:4px 6px} #compensi-t tr.compensi-det td{display:block} }
@media (max-width:900px){ #compensi-t td.c-st::before{display:none} }

/* 11.10 — «Aggiungi dai Professionisti» (board e faculty, _scegli_professionisti.php):
   i campi del modulo che si apre sotto la riga, e al telefono le schede al
   posto della tabella che si scorreva di lato */
.bc-ruolo .bc-campo{flex:0 1 250px;min-width:0;padding:8px 10px;border:1.5px solid var(--line);border-radius:9px;background:#fff;font:inherit;font-size:14px}
.bc-ruolo .bc-campo.bc-largo{flex:1 1 260px}
.bc-ruolo .bc-btn{display:flex;gap:8px;margin-left:auto}
@media (max-width:900px){
  .tab-scorre:has(> table.bc-t){background:none;overflow-x:visible}
  table.bc-t.tab-scheda td.chi{padding-left:0}
  table.bc-t.tab-scheda tr.bc-apre{background:#fff8e6;border-color:#f1d98a}
  table.bc-t.tab-scheda tr.bc-apre td{background:none}
  .bc-ruolo .bc-campo, .bc-ruolo .bc-campo.bc-largo{flex:1 1 100%;font-size:16px}
  .bc-ruolo .bc-btn{margin-left:0;width:100%}.bc-ruolo .bc-btn .btn{flex:1;justify-content:center}
  .bc-rb label{padding:4px 0}
}

/* 11.11 — più relatori sulla stessa relazione: sotto la tendina del primo, gli altri a pastiglie (come i moderatori) */
.rel-altri{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:3px}
.rel-altri:has(.mod-chip){margin-top:5px}
.mod-add.rel-piu{border:0;background:transparent;border-radius:0;padding:0 2px;width:auto;max-width:150px;font-size:var(--fs-piccolo);font-weight:600;color:var(--area);cursor:pointer;appearance:none;-webkit-appearance:none}
.mod-add.rel-piu:hover,.mod-add.rel-piu:focus{background:transparent;border:0;box-shadow:none;text-decoration:underline;color:var(--area)}
.ses-l-r .r.piu{white-space:normal;overflow:visible}
/* 11.12: una voce di una fila che porta in un'altra pagina (la lettera di incarico, da Comunicazioni ad Adempimenti) */
.btn.com-altrove{border-style:dashed}
.li-email{margin:-6px 0 14px}

/* 11.14 — il riquadro del viaggio di un componente, un passo alla volta (variante A approvata da Pietro il 7/10) */
.bvg-et{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:20px 0 8px}
.bvg-chiesto{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.bvg-chiesto>div{background:var(--soft);border-radius:var(--r);padding:10px 12px;min-width:0}
.bvg-chiesto span{display:block;font-size:12px;color:var(--muted)}.bvg-chiesto b{font-size:15px}.bvg-chiesto i{display:block;font-style:normal;font-size:13px;color:var(--muted)}
.bvg-ora{border:1.5px solid var(--blu);border-radius:var(--r);padding:14px 16px}.bvg-ora .form,.bvg-dentro .form{margin:0}
.bvg-arr{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.bvg-arr>label{flex:0 0 170px;margin:0}.bvg-arr>.btn{margin-left:auto}
.bvg-giorno{flex:1 1 200px;font-size:14px;color:var(--muted);padding-bottom:10px}.bvg-giorno summary{cursor:pointer;list-style:none}.bvg-giorno summary::-webkit-details-marker{display:none}
.bvg-giorno u{color:var(--blu);text-decoration:none}.bvg-giorno[open]{padding-bottom:0}.bvg-giorno[open] summary{display:none}.bvg-giorno label{margin:0;max-width:200px}
.bvg-riga{border-top:1px solid var(--line);margin:0}
.bvg-riga>summary{display:flex;gap:4px 10px;align-items:baseline;flex-wrap:wrap;padding:11px 2px;cursor:pointer;list-style:none;margin:0}
.bvg-riga>summary::-webkit-details-marker{display:none}.bvg-riga>summary::before{content:"▸";color:var(--muted)}.bvg-riga[open]>summary::before{content:"▾"}
.bvg-riga>summary span{color:var(--muted);font-size:14px}.bvg-dentro{padding:2px 0 14px 18px}
@media (max-width:700px){.bvg-chiesto{grid-template-columns:1fr 1fr}.bvg-arr>label,.bvg-arr>.btn{flex:1 1 100%;margin-left:0}.bvg-dentro{padding-left:0}.bvg-riga>summary span{flex:1 1 100%;padding-left:18px}}

/* 11.14 — la linea a tappe al telefono va in verticale (Pietro, 7/10: «in orizzontale i nomi delle etichette non
   sono mostrati»; variante A, per tutte le pagine che usano relb_linea: board e relatore). Al computer resta com'è. */
@media (max-width:600px){
  .rimb-linea.tappe{flex-direction:column;align-items:stretch;margin:8px 0 6px}
  .rimb-linea.tappe .rimb-t,.rimb-linea.tappe .fase-fine{flex:none;width:auto;display:grid;grid-template-columns:32px 1fr;column-gap:12px;align-items:start;text-align:left;padding:0 0 14px}
  .rimb-linea.tappe .rimb-t::before,.rimb-linea.tappe .fase-fine::before{display:none}
  .rimb-linea.tappe .rimb-t::after{content:"";position:absolute;left:15px;top:34px;bottom:2px;width:2px;background:var(--line)}
  .rimb-linea.tappe .rimb-t.fatto::after{background:var(--ok)}
  .rimb-linea.tappe .rimb-t:last-child::after{display:none}
  .rimb-linea.tappe .pc-num{grid-row:1 / span 2}
  .rimb-linea.tappe .rimb-t b,.rimb-linea.tappe .fase-fine b,.rimb-linea.tappe.lunga .rimb-t:not(.ora) b{margin:1px 0 0;font-size:15px;visibility:visible;white-space:normal}
  .rimb-linea.tappe .rimb-t .sot,.rimb-linea.tappe .fase-fine .sot{display:block;padding:0;font-size:13px;margin-top:1px}
}
/* 11.14 — «I suoi dati per prenotare» nella pagina del componente: una riga riassunta, in fondo al viaggio */
.bv-dati{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}
.bv-dati>summary{list-style:none;display:block;cursor:pointer}.bv-dati>summary::-webkit-details-marker{display:none}
.bv-dati>summary b{display:block}.bv-dati>summary span{display:block;font-size:14px;color:var(--muted);margin:2px 0}
.bv-dati>summary em{font-style:normal;color:var(--danger);font-weight:600}
.bv-dati>summary u{text-decoration:none;color:var(--blu);font-weight:600;font-size:14px}.bv-dati[open]>summary u{display:none}

/* 11.14 — le tappe sotto il dito (Pietro, 7/10, iPhone vero): Safari sollevava il collegamento della tappa
   (la pastiglia con il nome del sito) invece di far scorrere la pagina. Una tappa non si trascina e non apre
   l'anteprima con il dito tenuto giù; quella che non è un collegamento non ha la mano. */
.rimb-t,.fase-fine{-webkit-user-drag:none;-webkit-touch-callout:none}

/* 11.14 — a chi si propone la notte prima: la regola nella convocazione e l'interruttore nell'elenco */
.bv-int{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:99px;padding:5px 12px 5px 6px;font:inherit;font-size:14px;color:var(--muted);cursor:pointer}
.bv-int i{width:30px;height:18px;border-radius:99px;background:#cfd5e6;position:relative;flex:none}
.bv-int i::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff}
.bv-int.on{color:var(--ink);border-color:var(--ok)}.bv-int.on i{background:var(--ok)}.bv-int.on i::after{left:14px}
#bv-elenco td form{margin:0}
/* 11.14 — nell'elenco di «Convocazioni e viaggi» al telefono la spunta copriva l'inizio del nome: la regola
   della 11.10 (tabella «Aggiungi dai Professionisti», senza spunta) toglieva il rientro a tutte le tabelle del board */
@media (max-width:900px){ table.bc-t.tab-scheda#bv-elenco td.chi{padding-left:34px} }

/* 11.15: «Chi la segue» — il riquadro con la persona di izeos che segue l'evento o il board
   (chi_la_segue() in layout.php). Al telefono i due pulsanti vanno uno sotto l'altro, larghi. */
.cls-card{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:#F7F8FE;margin:0 0 10px}
.cls-av{flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:var(--blu-scuro);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.cls-chi{flex:1 1 180px;min-width:0}
.cls-chi b{display:block;font-size:17px;overflow-wrap:anywhere}
.cls-chi span{color:var(--muted);font-size:var(--fs-secondario)}
.cls-az{display:flex;gap:8px;flex-wrap:wrap;flex:1 1 100%}
.cls-az .btn{flex:1 1 auto;text-align:center;white-space:nowrap;-webkit-user-drag:none;-webkit-touch-callout:none}
.cls-riserva{margin:0 0 12px}
@media(max-width:600px){.cls-az .btn{flex:1 1 100%;white-space:normal;overflow-wrap:anywhere}}

/* 11.16 — lettere di incarico: i gradini degli importi (arancione = serve il
   Super admin, verde = la mandi tu) e la riga «Il programma con le lettere».
   Il campo di una strada si vede solo se quella strada è scelta: senza JavaScript. */
.li-avviso.li-aranc{background:#FFEFE3;border:1px solid #F2C29C;border-left:4px solid #C9651A;color:#6E3608}
.li-avviso.li-verde{background:#E9F7EF;border:1px solid #B5E0C6;border-left:4px solid #1E9E62;color:#12583A}
.li-resp{display:flex;gap:8px;align-items:flex-start;margin-top:8px;font-weight:600;cursor:pointer}
.li-resp input{flex:0 0 auto;margin-top:3px}
.lp-riga{padding:12px 16px}
.lp-testa{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.lp-testa>span{min-width:0;overflow-wrap:anywhere}
.lp-scegli>summary{list-style:none;cursor:pointer}
.lp-scegli>summary::-webkit-details-marker{display:none}
.lp-scegli[open]{flex:1 0 100%}
.lp-form{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.lp-dom{font-weight:700;margin-bottom:4px}
.lp-op{display:flex;flex-wrap:wrap;gap:4px 9px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line);cursor:pointer;font-weight:400}
.lp-dom+.lp-op{border-top:0}
.lp-op>input[type=radio]{flex:0 0 auto;margin-top:4px}
.lp-op>span:not(.lp-campo){flex:1;min-width:0}
.lp-op .lp-campo{flex:1 0 100%;display:flex;flex-direction:column;gap:4px;padding-left:27px;box-sizing:border-box;min-width:0}
.lp-op>input[type=radio]:not(:checked)~.lp-campo{display:none}
.lp-campo input{max-width:100%;min-width:0;box-sizing:border-box;font-size:16px}
.lp-campo input[type=url]{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px}
.lp-form .riga-btn{margin-top:10px}
.lp-nota{margin:10px 0 0}
.lp-giorno{margin:22px 0 8px;font-size:18px}
.lp-ses h3{margin:2px 0 4px}
.lp-ora{font-weight:700;font-size:14px}
.lp-int{display:flex;gap:12px;padding:8px 0 0;border-top:1px solid var(--line);margin-top:8px}
.lp-int b{flex:0 0 46px}
.lp-int span{display:block}

/* 11.17 — Comunicazioni dell'evento: l'elenco delle email, per momento */
.com-adesso{margin-bottom:14px}
.com-mom{margin:18px 0 4px;font-size:var(--fs-piccolo);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.com-elenco > .com-mom:first-child{margin-top:0}
.com-r{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1.3fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--soft)}
.com-mom + .com-r,.com-piu .com-elenco > .com-r:first-child{border-top:0}
.com-chi b,.com-chi span{display:block}
.com-st{display:flex;flex-wrap:wrap;gap:6px}
.com-st a{text-decoration:none}
.com-az{display:grid;grid-template-columns:76px 150px;gap:8px}
.com-az .btn{justify-content:center;text-align:center}
details.com-piu > summary{cursor:pointer;font-weight:700;color:var(--area)}
details.com-piu[open] > summary{margin-bottom:10px}
.com-p{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--soft)}
.com-p:first-child{border-top:0}
.com-p > span:first-child{min-width:0;overflow-wrap:anywhere}
.com-p > span:last-child{white-space:nowrap}
@media (max-width:900px){
  .com-r{grid-template-columns:1fr;gap:6px;padding:14px 0}
  .com-az{grid-template-columns:1fr 1fr}
  .com-az .btn{min-height:42px;display:inline-flex;align-items:center}
  .com-p{flex-direction:column;gap:2px}
  .com-p > span:last-child{white-space:normal}
}

/* 11.17 — «novità» accanto al numero di versione, e la pagina Novità */
.brand-nov{font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:rgba(255,255,255,.85);text-decoration:underline;
  text-underline-offset:2px;align-self:center;white-space:nowrap;padding:6px 2px}
.brand-nov:hover{color:#fff}
.nov-tit{margin:10px 0 0;font-size:var(--fs-testo-s)}
.nov-l{margin:0;padding-left:20px}
.nov-l li{margin:5px 0}
details.nov-prima > summary{cursor:pointer;font-weight:600}
.nov-vecchie details.nov-prima{padding:10px 0;border-top:1px solid var(--soft)}
.nov-vecchie details.nov-prima > summary{color:var(--ink,inherit);font-weight:500}

/* 11.18 — la linea a tappe arriva fino all'ultima tappa (Pietro, 7/10: «la linea si interrompe»). La tappa finale
   (.fase-fine, .rimb-sem) è più stretta delle altre: la sua linea copriva solo la sua larghezza e restava un buco.
   Ora l'ultima tappa numerata (.prima-fine) disegna la metà destra, la tappa finale la metà sinistra.
   Al telefono la linea a tappe è in verticale ed era già unita. */
.fase-fine::before,.rimb-sem::before{left:0;width:50%}
.rimb-linea:not(.tappe) .rimb-t.prima-fine::after{content:"";position:absolute;top:17px;left:50%;width:50%;height:4px;background:var(--line);z-index:0}
@media (max-width:600px){.rimb-linea:not(.tappe) .rimb-t.prima-fine::after{top:14px}}
@media (min-width:601px){.rimb-linea.tappe .rimb-t.prima-fine::after{content:"";position:absolute;top:17px;left:50%;width:50%;height:4px;background:var(--line);z-index:0}}
.rimb-linea .rimb-t.prima-fine.pf-verde::after{background:var(--ok)}
/* 11.19 — lettere di incarico: «Perché è ferma» (una fascia sola, uguale in Adempimenti, Board e Posta da approvare) e «Solo se serve» (ritocca il testo, PDF firmato a mano) */
.li-avviso.li-grigio{background:#EEF0F7;border:1px solid #D5D9EA;border-left:4px solid #8990AD;color:#2B3252}
.li-ferma .li-ferma-da{opacity:.75;white-space:nowrap}
.li-ferma a{color:inherit;font-weight:600}
/* 11.59: la riga «come evitarlo la prossima volta», solo per il Super admin: a capo, staccata dal resto */
.li-ferma .li-ferma-evita{display:block;margin-top:6px;padding-top:6px;border-top:1px dashed rgba(92,71,8,.28)}
#li-limiti-chi{margin:0 0 10px}
.posta-mie-ferme .posta-ogg-c>b{font-weight:600}
.li-serve{flex:1 0 100%;border-top:1px dashed var(--line);padding-top:10px;display:grid;gap:6px}
.li-serve-t{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.li-serve summary{cursor:pointer;color:var(--blu);font-weight:600;list-style:none}
.li-serve summary::-webkit-details-marker{display:none}
.li-serve summary::before{content:"▸ "}
.li-serve details[open]>summary::before{content:"▾ "}
.li-serve details[open]>summary{margin-bottom:8px}
.li-rit{display:grid;gap:10px;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0}
.li-rit label{display:grid;gap:4px;font-weight:700;font-size:var(--fs-piccolo,14px);margin:0}
.li-rit textarea,.li-rit input[type=text]{width:100%;max-width:100%;box-sizing:border-box;font:inherit;font-weight:400;font-size:16px;padding:8px 10px;border:1.5px solid var(--line);border-radius:9px;background:#fff;margin:0}
.li-rit .riga-btn{display:flex;gap:8px;flex-wrap:wrap}
.li-chip{display:inline-block;background:#EEF0F7;color:#3A4163;border:1px dashed #9AA1C0;border-radius:6px;padding:0 6px;font-weight:700;white-space:nowrap}
.li-ritocca .li-avviso{margin-bottom:10px}
@media(max-width:600px){ .li-ferma>span{display:block} .li-rit .riga-btn .btn{flex:1 1 100%;justify-content:center} }
.posta-ogg-c{min-width:0;flex:1 1 auto}
.li-rit label .muted{font-weight:400}
@media(max-width:600px){ #posta-t.tab-scheda td[data-et="Oggetto"],#posta-mie-t.tab-scheda td[data-et="Oggetto"]{display:block} #posta-t.tab-scheda td[data-et="Oggetto"]::before,#posta-mie-t.tab-scheda td[data-et="Oggetto"]::before{display:block;margin-bottom:4px} }

/* 11.20 — la Posta «Per me» divisa per progetto, e «Tutta la posta» */
.pme-prog{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:22px 0 8px}
.pme-prog h3{margin:0;font-size:18px}.pme-prog>.small{margin-left:auto}
.pme-p{padding:8px}
.pme-r{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:10px}
.pme-r+.pme-r{border-top:1px solid var(--soft)}
.pme-r.nuova{background:#FDF8EC}
.pme-r .notif-ic,.pme-r form{flex:0 0 auto}
.pme-riga{flex:1 1 0;min-width:0;overflow-wrap:anywhere}
.pme-altri{margin-top:22px;border:1.5px solid var(--line);border-radius:12px;background:#fff}
.pme-altri summary{cursor:pointer;font-weight:600;padding:12px 16px}
#tutta-posta tr.tp-nuovo td{background:var(--blu-soft)}
@media(max-width:900px){ #tutta-posta.tab-scheda td.chi{padding-left:0} #tutta-posta.tab-scheda tr.tp-nuovo{background:var(--blu-soft)} #tutta-posta.tab-scheda tr.tp-nuovo td{background:none} }
@media(max-width:600px){ .pme-prog>.small{margin-left:0;width:100%} }

/* 11.21 — «Salva in calendario» accanto a una cosa confermata (relatore, moderatore, componente del board) */
.cal-salva{flex:0 0 auto;white-space:nowrap;-webkit-user-drag:none;-webkit-touch-callout:none}
.cal-salva svg{vertical-align:-3px;margin-right:6px}
.rel-cal{margin:10px 0 8px}
.bc-hero .cal-salva{align-self:flex-start;margin-top:10px;background:#fff;color:var(--ink);border-color:#fff}
@media (max-width:600px){.rel-cal .cal-salva,.bc-hero .cal-salva{display:block;width:100%;text-align:center}}
/* 11.22: la barra del telefono. La posta è la bustina del computer con il numero nell'angolo, le scadenze in
   ritardo una pastiglia rossa con l'orologio: prima erano due pallini rossi uguali */
.mob-ico{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.28);color:#fff;flex:none}
.mob-ico svg,.mob-rit svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.mob-ico svg{width:20px;height:20px}
.mob-ico .n{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--danger);color:#fff;font:700 11px/18px Montserrat,sans-serif;text-align:center}
.mob-rit{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px 0 7px;border-radius:99px;background:var(--danger);color:#fff;font:700 13px/1 Montserrat,sans-serif;flex:none;white-space:nowrap}
.mob-rit svg{width:17px;height:17px}
.mob-ico:hover,.mob-rit:hover{text-decoration:none;color:#fff}

/* 11.23 (Pietro, 8/10): nella barra del telefono non c'è più il titolo della pagina (era quasi sempre tagliato
   e la pagina lo ripete subito sotto): il marchio spinge i due segni a destra. */
.barra-mob .mob-logo{margin-right:auto}
/* «novità» sotto il logo, non di fianco: di fianco schiacciava il marchio (62 punti invece di 114). */
aside .brand{flex-wrap:wrap;row-gap:8px}
aside .brand .brand-nov{order:9;flex:0 0 100%;padding-left:0}
@media (max-width:900px){
  /* al telefono il blocco del logo è nascosto (il marchio sta nella barra): «novità» non si vedeva. Chi ce l'ha
     (chi lavora in izeos) trova in cima al menu il numero di versione e «novità». */
  aside .brand:has(.brand-nov){display:flex;padding:14px 8px 12px}
  aside .brand .logo-box,aside .brand .brand-casa{display:none}
  aside .brand .brand-v{display:inline-block}
  aside .brand .brand-nov{order:0;flex:0 0 auto;font-size:13px;padding:8px 4px}
}
/* Safari sull'iPhone (controllo extra 24 del 6/10): un menu a tendina disegnato da noi (appearance:none) con una
   voce più lunga del campo allargava la pagina di 20 punti, e la scheda evento si spostava di lato. In Safari il
   testo che non ci sta conta come contenuto che sborda; Chrome e Firefox no. La voce lunga finisce con i puntini;
   il menu aperto la mostra intera. Non per gli elenchi a più righe (multiple, size), che devono poter scorrere. */
select:not([multiple]):not([size]){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 11.24 — Board, le Presenze di una milestone: la risposta «ci sarà / non partecipa» sotto il nome. E al
   telefono la tabella sta nello schermo: la colonna «Ruolo» usciva tagliata a destra (non serve per spuntare) e
   la casella «segna come svolto» era larga quanto lo schermo. */
.pres-risp{margin-top:4px;font-size:var(--fs-piccolo,12.5px);line-height:1.4}
.pres-risp .pill{margin-right:4px}
.pres-pan .note{margin:0 0 12px}
@media (max-width:600px){
  .pres-pan .pres-ruolo{display:none}
  /* le tabelle al telefono scorrono di lato (display:block, celle larghe almeno 96 punti): questa no, è un elenco da spuntare */
  .pres-pan table{display:table!important;table-layout:fixed;width:100%}
  .pres-pan table th,.pres-pan table td{min-width:0!important}
  .pres-pan table th:first-child,.pres-pan table td:first-child{width:38px!important;padding-right:0}
  .pres-pan table th:nth-child(3),.pres-pan table td:nth-child(3){width:84px!important}
  .pres-pan .pres-risp .muted{display:block;margin-top:2px}
  .pres-pan .row label:has(>input[type=checkbox]){display:flex;align-items:center;gap:8px;align-self:flex-start!important}
  .pres-pan .row label>input[type=checkbox]{width:22px;flex:0 0 22px}
}
/* 11.28: board, Convocazioni e viaggi. Nell'elenco, quando si aspetta il componente, al posto del pulsante c'è
   scritto cosa si aspetta, con «Apri» accanto. Al telefono le righe sotto il dato (albergo, «Vuole cambiare»)
   erano larghe quanto la scheda PIÙ il rientro di 122 punti: una frase lunga usciva tagliata a destra. */
.bv-aspetta{display:inline-flex;gap:4px 10px;align-items:baseline;flex-wrap:wrap;justify-content:flex-end}
.bv-aspetta a{font-weight:600}
@media (max-width:900px){
  #bv-elenco td[data-et] > div{flex:1 0 calc(100% - 122px);min-width:0;overflow-wrap:anywhere}
  #bv-elenco td.azioni .bv-aspetta{justify-content:space-between;width:100%}
}

/* ---------- 11.31: privacy e cookie ---------- */
.pv-piede{display:block;margin-top:8px}
.pv-piede a{color:#fff;font-weight:600;text-decoration:underline}
.pv-piede i{font-style:normal;margin:0 8px;opacity:.6}
.pv-login{text-align:center;margin:18px 0}
.pv-login .pv-piede a{color:inherit}
.pv-fascia{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#EEF1FB;border:1px solid #D5DBF3;border-radius:12px;padding:12px 16px;margin:0 0 16px;font-size:var(--fs-secondario);line-height:1.5}
.pv-fascia span{flex:1 1 240px}
.pv-fascia a{font-weight:700}
.pv-chi{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:14px 0 10px}
.pv-chi a{display:block;border:1px solid #D9DEEE;border-radius:12px;padding:14px 16px;text-decoration:none;color:inherit;background:#fff}
.pv-chi a:hover{border-color:var(--blu,#1a2bb8)}
.pv-chi a b{display:block;margin-bottom:2px}
.pv-chi a span{font-size:var(--fs-secondario);color:#667}
.pv-pagina .pv-testa{margin:0}
.pv-breve{background:#F3F5FA;border-radius:12px;padding:14px 18px;margin:12px 0 16px}
.pv-breve ul{margin:6px 0 0;padding-left:18px;line-height:1.7}
.pv-let details{border-top:1px solid #E3E7F2;padding:11px 0}
.pv-let summary{cursor:pointer;font-weight:700}
.pv-let summary i{display:inline-block;min-width:26px;font-style:normal;color:#5562B5}
.pv-corpo{margin:8px 0 0 26px;line-height:1.6;font-size:var(--fs-secondario);overflow-wrap:anywhere}
.pv-corpo p{margin:0 0 8px}
.pv-corpo ul{margin:0 0 8px;padding-left:18px}
.pv-riga{display:flex;gap:12px;align-items:center;justify-content:space-between;border-top:1px solid #E3E7F2;padding:11px 0;flex-wrap:wrap}
#privacy .pv-riga:first-of-type,.note+.pv-riga{border-top:0}
.pv-riga div span{display:block;font-size:var(--fs-secondario);color:#667}
.pv-mod{border-top:2px solid #E3E7F2;margin-top:10px;padding-top:6px}
.pv-altre{margin:6px 0}
.form label.pv-cons,label.pv-cons{display:flex;gap:9px;align-items:flex-start;font-weight:400;font-size:var(--fs-secondario);margin-top:8px;cursor:pointer}
label.pv-cons input[type=checkbox]{flex:none;width:20px;height:20px;min-height:0;margin:1px 0 0;padding:0}
@media(max-width:600px){.pv-corpo{margin-left:0}}
@media print{.pv-let details>*{display:block!important}}

/* 11.32 — «Vedi la sua pagina» sotto ogni nome (app/vedi_pagina.php) e l'elenco unico di «Guarda come».
   In fondo al foglio: deve vincere sulle regole delle tabelle a schede. */
.vp-riga{display:block;font-size:var(--fs-piccolo);font-weight:400;margin-top:3px}
a.vp-vedi{white-space:nowrap}
.vp-no{color:var(--muted)}
.gc-t td{vertical-align:top}
.gc-t .gc-cosa .pill{margin:0 2px 3px 0}
.gc-t tr.gc-senza td{background:var(--soft)}
.gc-t .gc-motivo{display:block;max-width:250px}
@media (max-width:600px){
  table.gc-t.tab-scheda td.chi{padding-left:0}
  table.gc-t.tab-scheda tr.gc-senza td{background:none}
  table.gc-t.tab-scheda td[data-et]{display:block}
  table.gc-t.tab-scheda td[data-et]::before{content:none}
  table.gc-t.tab-scheda td.chi{border-bottom:0;padding-bottom:2px;margin-bottom:0}
  table.gc-t.tab-scheda td.azioni{display:block}
  table.gc-t.tab-scheda td.azioni .btn{width:100%}
  .gc-t .gc-motivo{max-width:none}
  a.vp-vedi{white-space:normal}
}

/* 11.33 — Fornitori, «Vicino a»: la distanza nella colonna «Dove» e le tre fasce
   dell'elenco (righe titolo; al telefono stanno fra una scheda e l'altra) */
.fv-km{font-weight:700;white-space:nowrap}
.fb .fb-t input{width:150px}
.fv-come{margin:-6px 0 10px}
table.tab-scheda tr.fv-gr td{background:var(--bg,#f4f6f8);font-weight:700;font-size:12.5px;letter-spacing:.02em;padding:7px 10px}
table.tab-scheda tr.fv-gr td span{font-weight:400}
@media (max-width:700px){.fb .fb-t input{width:auto;max-width:none;flex:1;min-width:0}}
@media (max-width:900px){
  table.tab-scheda tr.fv-gr{border:0;background:none;padding:0;margin:14px 0 6px;box-shadow:none}
  table.tab-scheda tr.fv-gr td{background:none;padding:0;display:block}
}

/* 11.34 — Workshop: la pagina accanto a «Programma». Riquadri, tabella e moduli sono quelli di sempre: qui solo gli spazi */
.ws-testa{justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0}
.ws-uno{border-left:4px solid var(--blu)}
.ws-capo{justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.ws-capo h3{margin:0 0 3px}
.ws-capo-az{gap:8px;flex-wrap:wrap}.ws-capo-az form{margin:0}
.ws-tab{margin-top:12px}
.ws-lett{display:flex;gap:4px 8px;flex-wrap:wrap;align-items:center}
.ws-piu{margin:12px 0 0}
.ws-modifica{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}
.ws-via{margin-top:10px}
.ws-a-mano[hidden]{display:none}
.ws-pern{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
@media (max-width:600px){ .ws-testa .btn,.ws-capo-az,.ws-capo-az .btn,.ws-capo-az form{width:100%} .ws-capo-az{flex-direction:column} }

/* 11.34 — Novità a schede (bozze/novita-piu-chiare.html, variante A): parte, titolo, Prima/Adesso, Dove, passi, «Vai a vederlo» */
.nov-breve{margin:10px 0 0;font-size:var(--fs-testo)}
.nov-s{border:1px solid var(--line);border-radius:12px;padding:13px 15px;margin:0 0 10px;background:#fff}
.nov-s h4{margin:6px 0;font-size:var(--fs-testo);line-height:1.35}
.nov-pa{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 10px}
.nov-pa.nov-solo{grid-template-columns:1fr}
.nov-pa>div{border-radius:10px;padding:8px 11px;background:var(--soft);font-size:var(--fs-testo-s)}
.nov-pa>div.nov-ad{background:#E9F7EF}
.nov-pa>div>b:first-child,.nov-dove>b{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.nov-pa>div.nov-ad>b:first-child{color:#1C7C54}
.nov-dove{margin:0 0 6px;font-size:var(--fs-testo-s)}
.nov-dove>b{display:inline;margin-right:6px}
.nov-passi{margin:4px 0 10px;padding:0;list-style:none;counter-reset:novp}
.nov-passi li{counter-increment:novp;position:relative;padding-left:30px;margin:6px 0;font-size:var(--fs-testo-s)}
.nov-passi li::before{content:counter(novp);position:absolute;left:0;top:1px;width:21px;height:21px;border-radius:50%;background:var(--blu);color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center}
.nov-az{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
@media (max-width:600px){ .nov-pa{grid-template-columns:1fr} }

/* ---------- 11.35: i viaggi di tutti i progetti (p=tuttiviaggi) ---------- */
.tv-giorni{grid-template-columns:repeat(3,minmax(0,1fr))}
.tv-giorni .kpi{text-decoration:none}
.tv-giorni .kpi .l{margin:0 0 2px}
.tv-camb{color:var(--warn,#a15c00);font-weight:700}
.tv-elenco tr.tv-on>td{background:#f7f9fc}
.tv-elenco tr.tv-apri>td{background:#f7f9fc;padding:14px 16px 18px}
.tv-riq .g2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:18px;align-items:start}
.tv-riq .tv-az{gap:8px;margin-top:12px;flex-wrap:wrap;align-items:center}
.tv-riq .tv-stato{margin:0 0 10px}
.tv-riq .tv-chiudi{margin-left:auto}
.tv-apri .bv-gestisci{margin:0;box-shadow:none}
.nav-n{margin-left:6px}
.tv-fuori{margin:10px 2px}
@media (max-width:700px){
  .tv-giorni{gap:8px}.tv-giorni .kpi{padding:10px}
  .tv-riq .g2{grid-template-columns:1fr}
  .tv-riq .tv-az .btn{flex:1 1 100%;text-align:center}.tv-riq .tv-chiudi{margin-left:0}
  .tv-elenco tr.tv-apri>td{padding:12px 10px}
}

/* 11.36 — più proposte di viaggio fra cui scegliere (app/viaggio_proposte.php; grafica bozze/piu-proposte.html, variante A).
   .pp: le caselle della segreteria, una sotto l'altra; quella vuota è tratteggiata. .prop-carta: una scheda per
   proposta nella pagina della persona, con il suo «Scelgo questa». */
.pp{display:grid;gap:10px;margin:0 0 10px}
.pp-una{border:1.5px solid var(--line,#dfe4ee);border-radius:var(--r);padding:10px 12px;background:#fff}
.pp-una.vuota{border-style:dashed;background:transparent}
.pp-una[hidden]{display:none}
.pp-una label{display:block;font-family:Montserrat,sans-serif;font-weight:700;font-size:var(--fs-piccolo);margin:0}
.pp-una label span{font-weight:400;color:var(--muted);font-family:inherit}
.pp-una textarea{display:block;width:100%;box-sizing:border-box;field-sizing:content;min-height:3.4em;margin-top:6px}
.pp-nota{margin:0 0 10px}
.pp-altre,.pp-cambia{margin:8px 0 10px}.pp-altre>summary,.pp-cambia>summary{cursor:pointer}
.pp-cambia[open]>summary{margin-bottom:8px}
td .pp{gap:6px;margin:0}td .pp-una{padding:6px 8px}
.bvg-arr [hidden]{display:none}
.prop-carte{display:grid;gap:10px;margin:12px 0 4px}
.prop-carta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;align-items:center;border:1.5px solid var(--line,#dfe4ee);border-radius:var(--r);padding:14px 16px;background:#fff;margin:0}
.prop-carta h4{grid-column:1/-1;margin:0;font-family:Montserrat,sans-serif;font-size:var(--fs-testo)}
.prop-carta p{margin:0;white-space:pre-line;font-size:var(--fs-secondario)}
.prop-carta .btn{white-space:nowrap}
.scelte3.due.una{grid-template-columns:1fr}
@media (max-width:600px){.prop-carta{grid-template-columns:1fr}.prop-carta .btn{width:100%;text-align:center;margin-top:6px}}

/* ---------- 11.37 · Grant, il nuovo flusso (prima fetta) ----------
   La pagina del congresso («cosa chiediamo» e «cosa ha comprato ogni sponsor»),
   il modulo della pratica e la tabella dello sponsor (p=miegrant). */
.gr-due{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:18px;align-items:start;margin-bottom:18px}
.gr-due > .panel{margin-bottom:0}
.gr-campi{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
.gr-campi label{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;background:#fff;font-size:15px;margin:0;font-weight:400}
.gr-campi label.on,.gr-campi label:has(input:checked){border-color:var(--blu);background:var(--blu-soft);font-weight:600}
.gr-campi small{margin-left:auto;color:var(--muted);font-weight:400}
.gr-via{border:0;background:none;padding:0;font:inherit;color:var(--muted);text-decoration:underline;cursor:pointer}
.gr-nuova{margin-top:14px}
.gr-nuova > summary{list-style:none;display:inline-flex;cursor:pointer}
.gr-nuova > summary::-webkit-details-marker{display:none}
.gr-nuova label{display:block;margin-top:10px;max-width:340px}
.gr-nuova input{width:100%;padding:9px 10px;border:1.5px solid var(--line);border-radius:8px;font:inherit}
.gr-voci{display:flex;gap:6px;flex-wrap:wrap}
.gr-barra{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.gr-barra form{display:contents}
.gr-file{position:relative;overflow:hidden;cursor:pointer}
.gr-file input{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}
.gr-tab input,.gr-tab select{width:100%;min-width:0;padding:7px 8px;border:1.5px solid var(--line);border-radius:8px;font:inherit;font-size:14.5px;background:#fff}
.gr-tab td.azioni .btn,.gr-due td.azioni .btn{white-space:nowrap}
.gr-due td.azioni{white-space:nowrap}
.gr-due td.azioni form{display:inline}
.gr-pacchetto{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 4px}
.gr-voce{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}
.gr-voce:has(.gr-spunta input:checked){border-color:var(--blu);background:var(--blu-soft)}
.gr-voce .gr-spunta{display:flex;align-items:center;gap:8px;font-weight:700;margin:0 0 8px}
.gr-voce .gr-spunta input{width:auto}
.gr-voce label{margin:0}
.gr-ordine{margin:18px 0 6px;border-top:1px solid var(--line);padding-top:14px}
.gr-ordine > summary{cursor:pointer;font-weight:700;margin-bottom:12px}
@media(max-width:700px){
  .gr-due,.gr-campi,.gr-pacchetto{grid-template-columns:1fr}
  .gr-barra .btn{flex:1 1 100%;text-align:center;justify-content:center}
  .gr-tab input,.gr-tab select,.gr-nuova input{font-size:16px}
  table.tab-scheda.gr-tab td > input,table.tab-scheda.gr-tab td > select{flex:1 1 auto}
  .gr-due td.azioni{white-space:normal}
}
.gr-tab th:first-child,.gr-tab td.chi{width:26%;min-width:220px}
#gr-sponsor td.chi{min-width:200px}
#gr-sponsor th{white-space:nowrap}
@media(max-width:700px){
  table.tab-scheda.gr-tab td.chi,#gr-sponsor table.tab-scheda td.chi{padding-left:0;width:auto;min-width:0}
}
.gr-tab th:first-child,.gr-tab td.chi{width:22%;min-width:200px}
.gr-tab td > input,.gr-tab td > select{min-width:104px}

/* 11.38 — Faculty: «Cosa c'è da fare adesso» (al posto dei tre pulsanti), lo stato sotto il nome,
   le righe di chi non ha ancora detto sì. In fondo al foglio per vincere sulle regole di tab-scheda. */
.fac-fare{margin-bottom:12px}
.fac-fare h3{margin:0 0 8px}
.fac-fare-r{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--line)}
.fac-fare-r .n{font-size:1.5em;min-width:34px;font-variant-numeric:tabular-nums}
.fac-fare-r .t{flex:1 1 240px;min-width:0;display:flex;flex-direction:column}
.fac-fare-r .az{display:flex;gap:8px;flex-wrap:wrap;flex:0 0 auto}
.fac-fare-nota,.fac-fare-vuoto{margin:0;border-top:1px solid var(--line);padding-top:10px}
.fac-fare-vuoto{padding:12px 0}
table.fac-tab td.chi .fac-stato-r{margin-top:4px}
table.fac-tab td.chi .fac-stato-r .pill{margin-top:0}
.fac-solo-tel{display:none}
@media (max-width:900px){
  .fac-solo-tel{display:inline}
  table.fac-tab.tab-scheda tr.fac-prima td.col-doc,table.fac-tab.tab-scheda tr.fac-prima td.fac-dopo-pc{display:none}
  /* segnalazione di Pietro (9/10): «Non serve» del viaggio usciva tagliato a destra. La cella era una
     riga sola che non andava a capo: ora i pulsanti scendono sotto il testo */
  table.fac-tab.tab-scheda td.fc-cella{flex-wrap:wrap;row-gap:6px}
  table.fac-tab.tab-scheda td.fc-cella > span.small{flex:1 1 120px;min-width:0}
  table.fac-tab.tab-scheda td.fc-cella .fc-ns,table.fac-tab.tab-scheda td.fc-cella .fc-fuori{margin-top:0}
}
@media (max-width:600px){
  .fac-fare-r .az{flex:1 1 100%}
  .fac-fare-r .az .btn{flex:1 1 auto;justify-content:center;text-align:center}
}

/* ===== 11.39 — Grant, fetta 2: le richieste agli enti (pages/tuttigrant.php, _grant_riquadro.php, ente.php) =====
   L'elenco e la riga che si apre sono quelli dei Viaggi (tv-elenco, tv-apri, tv-riq): qui c'è solo quello che manca. */
.gr-kpi .kpi{text-decoration:none;color:inherit}
.gr-kpi .kpi.on{background:var(--soft,#eef1f8);border-color:var(--blu)}
.gr-riq h4{margin:0 0 10px;font-size:15px}
.gr-riq .st-linea{margin-bottom:6px}
.gr-riq .gr-fermo{color:#8a5a00;margin:6px 0 0 18px}
.gr-simile{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--soft,#eef1f4)}
.gr-simile:last-of-type{border-bottom:0}
.gr-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.gr-cosa td:first-child{white-space:nowrap}
.gr-scelte{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}
.gr-scelte label,.gr-opz{display:flex;align-items:center;gap:9px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:600;cursor:pointer}
.gr-scelte label:has(input:checked),.gr-opz:has(input:checked){border-color:var(--blu);background:var(--soft,#eef1f8)}
.gr-scelte input,.gr-opz input{width:auto;margin:0;flex:0 0 auto}
.gr-nomi{width:100%;border-collapse:collapse;margin:0 0 10px}
.gr-nomi th{text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line)}
.gr-nomi td{padding:8px;border-bottom:1px solid var(--soft,#eef1f4);vertical-align:top}
.gr-nomi td input{width:100%;margin:0 0 6px}.gr-nomi td input:last-child{margin-bottom:0}
.gr-b{margin:0 0 12px}
/* i tre blocchi della risposta: si vede solo quello della scelta fatta. Un browser che non conosce :has li mostra tutti e tre, e il modulo funziona lo stesso */
@supports selector(:has(*)){
  .gr-risp .gr-b{display:none}
  .gr-risp:has(input[value="nominativi"]:checked) .gr-b-nominativi,
  .gr-risp:has(input[value="modulo"]:checked) .gr-b-modulo,
  .gr-risp:has(input[value="no"]:checked) .gr-b-no{display:block}
}
.gr-esito{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:0 0 18px}
.gr-esito form{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff}
.gr-esito .small{margin-top:6px}
.gr-tel[open]{flex:1 1 100%}
.gr-tel form{margin-top:10px;display:flex;gap:8px;align-items:flex-end}.gr-tel form label{flex:1;margin:0}
.gr-tel summary{list-style:none;display:inline-flex}.gr-tel summary::-webkit-details-marker{display:none}
.gr-tre{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}
.gr-conti{display:flex;flex-wrap:wrap;gap:6px 16px}
.gr-conti span{white-space:nowrap}.gr-conti b{font-family:Montserrat,sans-serif;font-size:18px}
/* la pagina dell'ente */
.gr-ente{max-width:640px;margin-left:auto;margin-right:auto}
.gr-ente .kv td:first-child{color:var(--muted);width:38%}
.gr-file-riga{border:1px solid var(--line);border-radius:10px;padding:11px 14px;margin-top:10px}
.gr-file-riga a{font-weight:600}
.gr-risp-ente .gr-opz{margin:0 0 10px;padding:14px 16px;flex-wrap:wrap}
.gr-risp-ente .gr-opz span{flex:1 1 100%;font-weight:400;padding-left:26px}
.gr-nome{border:0;padding:0;margin:0 0 12px}
.gr-nome legend{font-size:14px;color:var(--muted);padding:0;margin:0 0 6px}
.gr-nome input{width:100%;margin:0 0 8px;font-size:16px}
.gr-invia{width:100%;margin-top:14px}
@media (max-width:860px){
  .gr-tre,.gr-esito,.gr-2{grid-template-columns:1fr}
  .gr-scelte{grid-template-columns:1fr}
  .gr-tel form{flex-direction:column;align-items:stretch}
  .gr-simile{flex-wrap:wrap}
  .gr-nomi,.gr-nomi tbody,.gr-nomi tr,.gr-nomi td{display:block;width:100%}
  .gr-nomi tr:first-child{display:none}
  .gr-nomi td{border:0;padding:4px 0}.gr-nomi tr{border-bottom:1px solid var(--soft,#eef1f4);padding:8px 0}
  .gr-nomi td input,.gr-riq input,.gr-riq select{font-size:16px}
}

/* 11.39, rifiniture dopo le fotografie: le scelte della risposta non prendono il carattere delle etichette dei moduli; il congresso sotto lo sponsor resta grigio; al telefono nome ed email del professionista stanno uno sotto l'altro */
.gr-risp .gr-scelte label,.gr-risp-ente label.gr-opz{display:flex;font-family:inherit;font-size:15px;letter-spacing:0;text-transform:none;color:inherit}
.gr-risp-ente label.gr-opz{flex-wrap:wrap}
.gr-risp-ente label.gr-opz span{display:block;flex:1 1 100%;font-weight:400;padding-left:26px;letter-spacing:0}
.gr-elenco .gr-cong a{color:inherit;font-weight:400}
.gr-elenco .gr-ns{display:inline-block}
@media (max-width:860px){
  table.gr-nomi,table.gr-nomi tbody,table.gr-nomi tr,table.gr-nomi td{display:block!important;width:100%}
  table.gr-nomi td input{display:block;width:100%!important;margin:0 0 6px}
}
/* nel riquadro «Cosa ha comprato ogni sponsor» i due pulsanti vanno a capo invece di uscire dal riquadro */
.gr-due td.azioni{white-space:normal}.gr-due td.azioni .btn{margin:0 0 4px}
@media (max-width:860px){.gr-elenco td[data-et="Stato"]{flex-wrap:wrap;gap:4px}}

/* 11.40 — Grant: la PEC in bozza e il modulo da firmare (pages/_grant_riquadro.php) */
.gr-riq .gr-pec-nota{margin:0 0 4px}
.gr-riq .gr-serve{margin-top:10px}.gr-riq .gr-serve summary{cursor:pointer;color:var(--muted)}
.gr-passi{list-style:none;counter-reset:grp;margin:0;padding:0}
.gr-passi>li{counter-increment:grp;position:relative;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px 12px 46px;margin:0 0 8px}
.gr-passi>li:before{content:counter(grp);position:absolute;left:12px;top:10px;width:24px;height:24px;border-radius:50%;background:var(--blu-soft);color:var(--blu);font-weight:700;font-size:13px;display:grid;place-items:center}
.gr-passi>li>div{margin-top:6px}.gr-passi form{margin-top:6px}.gr-passi form label{margin-bottom:8px}
.gr-passi .btn{white-space:normal}

/* ===== 11.41 — Grant, fetta 4: il professionista, venduto/speso/resta, la modifica dello sponsor
   (pages/_grant_riquadro.php, miegrant.php, g.php). Riquadri, pulsanti e pillole sono quelli di sempre. ===== */
.gr-pro{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px 14px;margin:0 0 10px}
.gr-pro-fig{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin:0 0 4px}
.gr-pro-t{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 8px}
.gr-riq .gr-pro .gr-pro-az{margin-top:10px}
.gr-pro-az form{display:contents}
.gr-pro-cerca{display:flex;gap:8px;margin:0 0 4px}
.gr-pro-cerca input{flex:1 1 auto;min-width:0;margin:0}
.gr-trov{display:flex;gap:10px;align-items:center;justify-content:space-between;border-top:1px solid var(--soft,#eef1f4);padding:8px 0}
.gr-trov .btn{flex:0 0 auto}
.gr-agg{border-top:1px solid var(--soft,#eef1f4);padding:10px 0 0;margin-top:2px}
.gr-agg summary{cursor:pointer;font-weight:700}.gr-agg[open] summary{margin-bottom:2px}
.gr-riq .gr-corr{margin-top:14px}.gr-riq .gr-corr[open] summary{margin-bottom:12px}
table.gr-bud td,table.gr-bud th{white-space:nowrap}table.gr-bud td:first-child{white-space:normal}
/* nella pagina dello sponsor «Proponi una modifica» va su due righe invece di uscire dal riquadro */
.gr-tab td.azioni a.btn,.gr-tab td.azioni button[name=ritira]{white-space:normal;text-align:center;max-width:150px;line-height:1.25}
.gr-agg-campi{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:8px;margin:6px 0 8px}
.gr-agg-campi input{margin:0;width:100%}
.gr-agg label.check{margin:0 0 8px}
table.gr-bud{width:100%;border-collapse:collapse}
table.gr-bud th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line);text-align:right;font-weight:700}
table.gr-bud td{padding:6px 8px;border-bottom:1px solid var(--soft,#eef1f4);text-align:right;vertical-align:middle}
table.gr-bud th:first-child,table.gr-bud td:first-child{text-align:left}
table.gr-bud td input{width:92px;margin:0;text-align:right;padding:5px 8px}
table.gr-bud tr.tot td{border-top:2px solid var(--line);border-bottom:0;font-weight:700}
.gr-riq h4.gr-bud-tit,#gr-enti h4.gr-bud-tit{margin:18px 0 10px;font-size:15px}
table.gr-cfr{width:100%;border-collapse:collapse;margin:0 0 12px}
table.gr-cfr th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
table.gr-cfr td{padding:8px;border-bottom:1px solid var(--soft,#eef1f4);vertical-align:top}
table.gr-cfr td.prima{color:var(--muted);text-decoration:line-through}
table.gr-cfr td.dopo{font-weight:700;background:#f2f8f3}
.gr-motivo{border-left:3px solid var(--line);padding:2px 0 2px 12px;margin:0 0 12px}
.gr-mod-decidi{margin-top:12px}
/* la pagina dello sponsor: la proposta si apre sotto la riga */
tr.gr-prop-riga>td{background:#f7f9fc;padding:0!important}
.gr-prop{border-left:4px solid var(--blu);padding:16px 18px}
.gr-prop-campi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin:12px 0}
.gr-prop label{display:block;margin:0}
.gr-prop .gr-barra{margin:12px 0 0}
.gr-tab .gr-prop input,.gr-tab .gr-prop select,.gr-tab .gr-prop textarea{width:100%;margin-top:4px}
/* la pagina del professionista (p=g) */
.gr-pro-chiede{border:2px solid var(--accent)}
.gr-pro-voci{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}
.gr-pro-si{gap:8px;flex-wrap:wrap}
.gr-pro-ok{margin-bottom:16px}
@media (max-width:860px){
  .gr-agg-campi,.gr-prop-campi{grid-template-columns:1fr}
  .gr-trov{align-items:flex-start}
  .gr-pro-cerca{flex-wrap:wrap}.gr-pro-cerca input{flex:1 1 100%}
  /* le due tabelline restano tabelle anche dentro l'elenco a schede */
  table.tab-scheda table.gr-bud{display:table!important;width:100%}
  table.tab-scheda table.gr-bud tbody{display:table-row-group!important}
  table.tab-scheda table.gr-bud tr{display:table-row!important;border:0;padding:0;margin:0;border-radius:0;background:none;box-shadow:none}
  table.tab-scheda table.gr-bud td,table.tab-scheda table.gr-bud th{display:table-cell!important;padding:6px 4px;width:auto}
  table.tab-scheda table.gr-bud td:before{content:none}
  table.gr-bud td input{width:74px;font-size:16px}
  table.tab-scheda table.gr-bud td,table.tab-scheda table.gr-bud th{font-size:13.5px}
  .gr-tab td.azioni a.btn,.gr-tab td.azioni button[name=ritira]{max-width:none}
  table.tab-scheda table.gr-cfr,table.tab-scheda table.gr-cfr tbody{display:block!important}
  table.tab-scheda table.gr-cfr tr{display:block!important;padding:8px 0;border:0;border-bottom:1px solid var(--soft,#eef1f4);margin:0;border-radius:0;background:none;box-shadow:none}
  table.tab-scheda table.gr-cfr tr:first-child{display:none!important}
  table.tab-scheda table.gr-cfr td{display:block!important;border:0;padding:2px 0;background:none}
  table.tab-scheda table.gr-cfr td:before{content:none}
  table.tab-scheda table.gr-cfr td:first-child{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
  table.tab-scheda tr.gr-prop-riga{padding:0;border-color:var(--blu)}
  table.tab-scheda tr.gr-prop-riga>td{display:block}
  .gr-prop{border-left:0;padding:12px}
  .gr-prop input,.gr-prop select,.gr-prop textarea,.gr-pro input{font-size:16px}
  .gr-pro-si .btn{flex:1 1 100%;text-align:center}
}

/* 11.42 — gli elenchi di caselle «scegline più d'una» (campo_scelte(): le professioni, i tipi di
   struttura). In alto le scelte come etichette, l'elenco si apre e si richiude; niente riquadro che
   scorre dentro la pagina. Tre colonne al computer, una al telefono con righe da toccare con il dito.
   In fondo al foglio perché deve vincere sulle regole dei campi di .sez-c e .form (che mandavano la
   casella dopo il testo e coloravano di grigio gli span dentro le etichette). */
.prof{min-width:0}
.prof label.prof-et{display:block;margin:0;cursor:default}
.prof-d{margin-top:8px;border:1.5px solid var(--line);border-radius:10px;background:#fff}
.prof-d>summary{list-style:none;cursor:pointer;display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 14px}
.prof-d>summary::-webkit-details-marker{display:none}
.prof-d>summary .btn{flex:0 0 auto}
.prof-d[open] .se-chiuso,.prof-d:not([open]) .se-aperto{display:none}
.prof-scelte{display:flex;flex-wrap:wrap;gap:6px;min-width:0;align-items:center}
.prof .prof-scelte .vuoto{color:var(--muted);font-size:var(--fs-secondario);font-weight:400}
.prof .prof-scelte .pill{font-weight:600;color:var(--area)}
.prof-barra{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 14px;
  border-top:1.5px solid var(--line);background:var(--soft)}
.prof-barra b{font-size:var(--fs-secondario)}
.prof-barra .row{gap:8px}
.prof-corpo{padding:4px 14px 12px}
.prof-gt{display:flex;align-items:baseline;gap:10px;margin:14px 0 4px;padding-bottom:5px;border-bottom:1px solid var(--line)}
.prof-gt b{font-family:Montserrat,sans-serif;font-size:var(--fs-secondario);font-weight:700;color:var(--ink)}
.prof .prof-gt span{font-size:var(--fs-piccolo);color:var(--muted);font-weight:400}
.prof-gt button{margin-left:auto;border:0;background:none;padding:2px 0;font:inherit;font-size:var(--fs-piccolo);font-weight:600;
  color:var(--area);cursor:pointer}
.prof-voci{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px}
.prof-g:first-child:last-child .prof-voci{margin-top:8px}
.prof .prof-voci label.voce{display:flex;flex-direction:row;align-items:flex-start;gap:9px;margin:0;padding:6px 0;
  font-family:'Inter Tight',sans-serif;font-weight:400;font-size:var(--fs-testo-s);line-height:1.35;color:var(--ink);cursor:pointer}
.prof .prof-voci label.voce input[type=checkbox]{order:0;width:20px;height:20px;min-height:0;margin:0;flex:none}
.prof .prof-voci label.voce:has(input:checked){font-weight:600;color:var(--area)}
.ob-intero{margin-top:8px;line-height:1.5}
.ob-intero:empty{display:none}
@media (max-width:1100px){.prof-voci{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){
  .prof-voci{grid-template-columns:1fr}
  .prof .prof-voci label.voce{padding:11px 0;border-bottom:1px solid var(--soft)}
  .prof .prof-voci label.voce input[type=checkbox]{width:22px;height:22px}
  .prof-d>summary{align-items:flex-start}
  .prof-barra b,.prof-barra .row{flex:1 0 100%}
  .prof-barra .btn{flex:1 1 0;text-align:center;padding-left:6px;padding-right:6px;white-space:nowrap}
}

/* 11.43 — Chiusura: cosa manca (una riga per persona) e il riquadro del pulsante */
.ch-scarica{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:start}
.ch-scarica.on{border-color:var(--ok,#1C7C54);box-shadow:inset 3px 0 0 var(--ok,#1C7C54)}
.ch-s1{min-width:0}.ch-s1 h3{margin-bottom:6px}.ch-s1 p{margin:0}
.ch-s2{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.ch-dentro{grid-column:1/-1}.ch-ok{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.ch-ok p{margin:8px 0 0}
.ch-dentro summary,.ch-ok summary{cursor:pointer;font-weight:600;font-size:var(--fs-testo-s)}
.ch-albero{list-style:none;margin:10px 0 0;padding:0}
.ch-albero li{padding:7px 0 7px 14px;border-left:2px solid var(--line);font-size:var(--fs-testo-s)}
.ch-albero li span{display:block}
.ch-r{display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:6px 18px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.ch-manca h3 + .ch-r{border-top:0;padding-top:0}
.ch-cosa{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
@media (max-width:640px){
  .ch-scarica{grid-template-columns:1fr}
  .ch-s2{align-items:stretch}.ch-s2 .btn{width:100%;text-align:center;justify-content:center}
  .ch-r{grid-template-columns:1fr}
}

/* ---------- 11.45: «Cosa trova nella sua pagina» (pages/_cosa_trova.php) ----------
   Un riquadro solo, uguale in Faculty, Scheda evento, convocazione del board e
   riga del grant. L'interruttore è una casella vera vestita da levetta. */
.ct-box{margin-bottom:12px}
details.ct-box>summary{list-style:none;cursor:pointer}details.ct-box>summary::-webkit-details-marker{display:none}
.ct-chiuso{display:flex;gap:10px 18px;align-items:flex-start;flex-wrap:wrap}
.ct-chiuso .ct-tit{font-family:Montserrat,sans-serif;font-size:var(--fs-titolo-s,1.05em);margin-right:4px}
details.ct-box[open]>summary .ct-rg,details.ct-box[open]>summary .ct-az{display:none}
.ct-sotto{margin:6px 0 10px}
.ct-r{display:flex;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.ct-r .t{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.ct-r .t b{font-family:Montserrat,sans-serif}
.ct-r.spento .t b{color:var(--muted)}
.ct-int{flex:none;position:relative;display:inline-block;width:50px;height:30px;margin:0;cursor:pointer}
.ct-int input{position:absolute;inset:0;width:100%!important;height:100%!important;margin:0!important;opacity:0;cursor:pointer}
.ct-int i{position:absolute;inset:0;border-radius:99px;background:#C9CEE0;transition:background .18s}
.ct-int i::after{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(10,13,49,.3);transition:left .18s}
.ct-int input:checked+i{background:var(--blu)}.ct-int input:checked+i::after{left:23px}
.ct-int input:focus-visible+i{box-shadow:0 0 0 4px rgba(var(--alone,6,14,208),.18)}
.ct-int input:disabled+i{opacity:.55}
select.ct-modo{width:max-content!important;max-width:100%;align-self:flex-start;padding:4px 30px 4px 10px;font-size:var(--fs-piccolo);min-height:0;height:auto;margin:4px 0 0}
.ct-sempre{margin:0;border-top:1px solid var(--line);padding-top:10px}
.ct-sing{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}
.ct-sing>summary{cursor:pointer;font-weight:700}.ct-sing>summary .small{font-weight:400}
.ct-sing-nota{margin:8px 0 0}
.ct-p{display:flex;gap:8px 14px;align-items:center;flex-wrap:wrap;padding:10px 0;border-top:1px dashed var(--line);margin-top:10px}
.ct-p .chi{flex:1 1 170px;min-width:0}
.ct-p .voci{display:flex;gap:6px;flex-wrap:wrap;margin:0}
.ct-v{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:99px;border:1.5px solid var(--line);background:#fff;font:inherit;font-size:var(--fs-piccolo);font-weight:600;color:inherit;white-space:nowrap}
button.ct-v{cursor:pointer}
.ct-v.si{background:#EEF0FF;border-color:#C9CEF5;color:var(--blu)}
.ct-v.no{color:var(--muted);text-decoration:line-through}
.ct-v.div{border-color:#E0A93B;box-shadow:0 0 0 2px #FFF1CF}
.ct-doc{flex:1 1 100%}.ct-doc>summary{cursor:pointer}
.ct-avviso{margin:0 0 4px}.ct-avviso .row{gap:8px;flex-wrap:wrap;margin:10px 0 8px}.ct-avviso form{margin:0}
#ct-viaggio-modi{margin-top:10px}.ct-scheda-nota{margin:10px 0 0;border-top:1px solid var(--line);padding-top:10px}
#ct-viaggio-modi[hidden]{display:none}
.ct-riga-g{display:flex;gap:6px 8px;align-items:center;flex-wrap:wrap;margin-top:6px}
@media(max-width:600px){
  .ct-p .chi{flex-basis:100%}
  .ct-avviso .row>*{flex:1 1 100%}.ct-avviso .row .btn{width:100%;justify-content:center;text-align:center}
}
.ct-board{margin:4px 0 14px}.ct-board .ct-tit{font-family:Montserrat,sans-serif}.ct-board .ct-sotto{margin:2px 0 8px}
.ct-board .ct-sing-nota{display:flex;gap:8px;align-items:flex-start;font-weight:400}

/* ---------- 11.46: la cima del menu (bozze/menu-icone.html e menu-altri-utenti.html, varianti A) ----------
   Tre icone con il nome sotto, larghe uguali; un colore per ogni quadratino (menu_sezioni() in layout.php);
   «Grant» e «Viaggi» voci dirette; pallini tondi per chi è in linea; «Altri utenti» in grigio. */
aside .nav-icone{gap:6px;padding:4px 0 12px}
aside .nav-icone a{flex:1 1 0;min-width:0;width:auto;height:auto;flex-direction:column;gap:5px;padding:9px 1px 7px;margin:0;border-radius:12px;
  border-color:rgba(255,255,255,.2);color:#fff;font-size:11px;letter-spacing:-.01em;line-height:1.15;text-align:center}
aside .nav-icone .nome{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
aside .nav-icone .n{top:-7px;right:-5px;min-width:20px;height:20px;line-height:20px}
aside .nav-sez:before{width:9px;height:9px}
aside .nav-sez.tondo:before{border-radius:50%}
aside .nav-sez.vuoto:before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--sez,#94A3B8)}
/* una voce diretta è un titolo di gruppo che si clicca: stessa riga, una freccia al posto della tendina */
aside nav a.nav-sez.nav-diretta{font-size:var(--fs-micro);line-height:inherit;padding:var(--sp-1) 12px;margin-bottom:0;border:0;border-bottom:4px solid transparent;background-clip:padding-box;text-decoration:none;border-radius:8px}
aside nav a.nav-sez.nav-diretta:after{content:'→';margin-left:auto;margin-right:2px;opacity:.5;font-family:inherit;letter-spacing:0}
aside nav a.nav-sez.nav-diretta:hover{color:#fff;background:rgba(255,255,255,.06)}
aside nav a.nav-sez.nav-diretta.on{color:#fff;background:var(--sez-soft)}
/* «Altri utenti»: dopo una riga sottile, grigia; chiusa dice se uno di loro è in linea */
aside nav .presenze .presenze-altri{margin-top:var(--sp-2);padding-top:var(--sp-1);border-top:1px solid rgba(255,255,255,.10)}
.presenze-n.grigia{background:rgba(143,150,196,.22);color:#C3C8EA}
/* il menu del computer è largo 250: titolo, «N in linea» e numero devono stare su una riga sola */
aside nav .presenze .presenze-altri > summary.nav-sez{white-space:nowrap;letter-spacing:.04em;gap:6px}
.presenze-g > summary .presenze-ora{margin-left:0;font-family:'Inter Tight',system-ui,sans-serif;font-size:var(--fs-micro);font-weight:600;letter-spacing:0;text-transform:none;color:#7FE3B0;white-space:nowrap}
.presenze-g > summary .presenze-ora:before{content:'●';font-size:8px;margin-right:3px;vertical-align:1px}
.presenze-g > summary .presenze-ora[hidden]{display:none}
.presenze-g > summary .presenze-ora b{font-weight:inherit}
.presenze-g > summary .presenze-ora + .presenze-n{margin-left:auto}
@media (max-width:900px){
  aside .nav-icone{gap:8px}
  aside .nav-icone a{padding:11px 2px 9px;font-size:13px}
  aside nav a.nav-sez.nav-diretta{font-size:var(--fs-micro);padding:var(--sp-1) 12px}
}
/* al computer il menu è largo 250 e «1 in linea» spingerebbe il numero sotto la freccia: resta il pallino verde
   con il numero (la scritta intera al telefono, dove il menu è più largo, e nel suggerimento) */
@media (min-width:901px){.presenze-g > summary .presenze-ora .po-t{display:none}}

/* 11.47 — Nuovo evento: «Cosa facciamo per questo evento?» e l'etichetta «Solo accreditamento» */
.nv-cosa h3{margin-top:0}
.nv-cosa-due{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nv-cosa-due .sala-ck{padding:16px}
.nv-cosa-due .sala-ck b{font-size:var(--fs-testo)}
.nv-cosa-due .sala-ck.nv-on{border-color:var(--blu);background:#F4F5FF}
.nv-sempre{margin:0 0 12px}
.ev-accr{display:inline-block;margin:4px 0 2px;padding:2px 9px;border-radius:99px;background:rgba(255,255,255,.16);font-size:12px;font-weight:600}
.inc-chi[hidden]{display:none}
@media(max-width:600px){.nv-cosa-due{grid-template-columns:1fr}}

/* 11.49 — «A che punto è l'accreditamento»: i quattro riquadri in cima alla pagina degli eventi di solo
   accreditamento (pages/metodo.php, app/accreditamento.php). Al telefono uno per riga, con il pulsante a destra. */
.accr-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.accr-c{background:#fff;border:1px solid var(--line);border-top:3px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.accr-c .accr-t{font-size:var(--fs-piccolo);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.accr-c b{font-family:Montserrat,sans-serif;font-size:var(--fs-testo);line-height:1.25}
.accr-c .small{margin-bottom:8px}
.accr-c .btn{margin-top:auto;align-self:flex-start}
.accr-ok{border-top-color:var(--ok)}.accr-warn{border-top-color:var(--warn)}.accr-danger{border-top-color:var(--danger)}
@media (max-width:1100px){.accr-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.accr-4{grid-template-columns:minmax(0,1fr)}
  .accr-c{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:center}
  .accr-c .accr-t,.accr-c b,.accr-c .small{grid-column:1;margin:0}
  .accr-c .btn{grid-column:2;grid-row:1 / span 3;margin:0}}

/* ---------- 11.50: «Importa da provider.izeos.it» (p=import) ---------- */
.ip-passi{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px;padding:0;list-style:none}
.ip-passi li{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:99px;background:#fff;border:1px solid var(--line);color:var(--muted);font-weight:600;font-size:var(--fs-testo-s)}
.ip-passi li i{font-style:normal;width:24px;height:24px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-size:var(--fs-piccolo)}
.ip-passi li.fatto i{background:var(--ok-soft);color:var(--ok)}
.ip-passi li.qui{border-color:var(--blu);color:var(--ink)}
.ip-passi li.qui i{background:var(--blu);color:#fff}
.ip-file{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.ip-file .n{font-weight:700;overflow-wrap:anywhere}
.ip-cosa{list-style:none;margin:14px 0 0;padding:0}
.ip-cosa li{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--soft)}
.ip-cosa li i{font-style:normal;flex:none;width:22px;height:22px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;font-size:var(--fs-piccolo);font-weight:700}
.ip-cosa li i.a{background:var(--warn-soft);color:#7A4B00}
.ip-quattro{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:6px}
.ip-quattro div{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
.ip-quattro b{display:block}
.ip-quattro span{font-size:var(--fs-piccolo);color:var(--muted)}
.ip-quattro .f{border-color:var(--ok);background:var(--ok-soft)}
.ip-av{margin:10px 0 6px}
.ip-av .bar{height:12px}
.ip-av .bar i{transition:width .3s}
@media (max-width:700px){
  .ip-quattro{grid-template-columns:1fr 1fr}
  .ip-passi li{font-size:var(--fs-piccolo);padding-right:10px}
  /* 11.50: i documenti nella scheda del professionista, al telefono, sono schede
     (tab-scheda): il nome del documento in cima, sotto le altre voci con la loro etichetta */
  .pag-persone .panel > table.tab-scheda{white-space:normal;padding-bottom:0;table-layout:auto}
  .pag-persone .panel > table.tab-scheda td{display:flex;font-size:var(--fs-testo-s);padding:5px 0}
  .pag-persone .panel > table.tab-scheda td.chi{display:block;width:auto !important;padding:0 0 8px 34px;border-bottom:1px solid var(--soft);margin-bottom:6px}   /* 11.54: «chi», non «la prima»: davanti può esserci la spunta */
  .pag-persone .panel > table.tab-scheda td.el-c{padding:0}
  .pag-persone .panel > table.tab-scheda td.right .btn{width:100%;justify-content:center}
}

/* ---------- 11.51 · pagina del relatore: «Scarica il modello» e «Carica il file» alla stessa altezza ----------
   (Pietro, 10/10, visto da quando i modelli sono caricati.) Due cause. (1) «Carica il file» è un <label>, e
   nelle pagine senza menu ogni label è un blocco con 14 px di margine sotto: la riga lo centrava contando quel
   margine, e il pulsante finiva 7 px più su di «Scarica il modello». (2) Al telefono il collegamento era alto
   46 px e il label 38, e i due andavano a capo solo dove non ci stavano: affiancati in «Slide», uno sotto
   l'altro negli altri riquadri. Ora decide la larghezza del riquadro, uguale per tutti: se è stretto i due
   pulsanti stanno uno sotto l'altro, larghi quanto il riquadro, prima il modello e poi il caricamento; se no
   sulla stessa riga. La regola per larghezza dello schermo è il ripiego per i telefoni che non conoscono
   @container. In fondo al foglio perché deve vincere sulle regole di .ext-shell. */
.rl-doc{container-type:inline-size}
.ext-shell .rl-giu .rel-scegli{display:inline-flex;margin-bottom:0}
@container (max-width:279px){
  .rl-giu{flex-direction:column;align-items:stretch}
  .rl-giu .rel-carica{flex-direction:column;align-items:stretch}
  .ext-shell .rl-giu .btn{width:100%;min-height:46px}
}
@media (max-width:700px){
  .rl-giu{flex-direction:column;align-items:stretch}
  .rl-giu .rel-carica{flex-direction:column;align-items:stretch}
  .ext-shell .rl-giu .btn{width:100%;min-height:46px}
}

/* 11.53 — «Importa dati», la pagina di scelta: un elenco solo, una riga per cosa (pages/_importa_scelta.php).
   Il pulsante non va mai a capo e non si stringe: al telefono si accorcia il testo accanto, così tutte le
   righe hanno il pulsante uguale (nella bozza andava a capo in modo diverso da riga a riga). */
.imp-scelta{list-style:none;margin:0;padding:0}
.imp-scelta li{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:11px 0;border-top:1px solid var(--soft)}
.imp-scelta li:first-child{border-top:0}
.imp-scelta li > div{min-width:0}
.imp-scelta span{display:block;font-size:var(--fs-piccolo);color:var(--muted)}
.imp-scelta .btn{flex:0 0 auto;white-space:nowrap;min-width:150px;justify-content:center}
.imp-file{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.soc-tieni{display:flex;gap:10px;align-items:flex-start;margin:0;font-weight:400}
.soc-tieni input{flex:0 0 auto;margin-top:2px}
@media (max-width:600px){.imp-scelta .btn{min-width:138px;padding-left:10px;padding-right:10px}}

/* ---------- 11.54 — Interfacce uniformi (app/filtri.php: el_contatori, el_selezione) ---------- */
/* i quattro contatori: si premono e filtrano l'elenco; quello scelto ha il bordo blu */
.el-cont{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 14px}
a.stat.el-st{display:block;text-decoration:none;color:inherit;padding:14px 16px;border-left:4px solid var(--line)}
a.stat.el-st .v{font-size:28px}
a.stat.el-st .l{font-size:13px}
a.stat.el-st.ok{border-left-color:var(--ok)}a.stat.el-st.warn{border-left-color:var(--warn)}a.stat.el-st.danger{border-left-color:var(--danger)}
a.stat.el-st:hover{border-color:var(--blu)}
a.stat.el-st.on{outline:2px solid var(--blu);outline-offset:-2px;background:var(--blu-soft)}
/* la riga della selezione: le azioni e il conto ci sono solo con qualcosa di spuntato */
.el-sel{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px;font-size:13px}
.el-sel .el-n{font-weight:700;color:var(--blu)}
.el-sel .el-az-sel{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.el-sel[data-n="0"] .el-az-sel,.el-sel[data-n="0"] .el-n{display:none}
th.el-c,td.el-c{width:36px;padding-right:0}
.el-c .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
input.el-k{width:20px;height:20px;min-width:20px;margin:0;padding:0;accent-color:var(--blu);appearance:auto;-webkit-appearance:checkbox;display:inline-block;flex:none;order:0;transform:none!important}
tr.el-on td{background:var(--blu-soft)}
@media (max-width:900px){
  /* al telefono la spunta sta nell'angolo della scheda, accanto al nome */
  table.tab-scheda td.el-c{position:absolute;left:12px;top:13px;padding:0;width:auto!important}
  table.tab-scheda tr.el-on{background:var(--blu-soft);border-color:var(--blu)}
  table.tab-scheda tr.el-on td{background:none}
  input.el-k{width:22px;height:22px;min-width:22px}
}
@media (max-width:700px){
  .el-cont{grid-template-columns:1fr 1fr;gap:8px}
  a.stat.el-st{padding:10px 12px}a.stat.el-st .v{font-size:22px}a.stat.el-st .l{font-size:12px;line-height:1.25}
  /* le azioni scendono in una barra attaccata in basso, con il conto */
  body.el-ha-sel main{padding-bottom:96px}
  .el-sel[data-n]:not([data-n="0"]) .el-az-sel{position:fixed;left:0;right:0;bottom:0;z-index:40;margin:0;background:#fff;border-top:1px solid var(--line);
    box-shadow:0 -6px 18px rgba(0,0,0,.08);padding:10px 14px calc(10px + env(safe-area-inset-bottom));flex-wrap:nowrap;overflow-x:auto}
  .el-sel .el-az-sel .btn{flex:1 0 auto;justify-content:center;text-align:center}
}
@media (max-width:700px){
  .el-sel .el-az-sel::before{content:attr(data-t);font-weight:700;color:var(--blu);white-space:nowrap;align-self:center;font-size:13px}
}
.el-nota{font-size:13px;margin:0 0 12px;padding:8px 12px;border:1px solid #e6c97a;background:#fff8e1;border-radius:10px}
@media (max-width:900px){ table.tab-scheda td.el-c + td.chi{padding-left:34px} }
@media (max-width:700px){
  /* niente da scorrere di lato: il conto su una riga sua, i pulsanti sotto, a capo se sono tre */
  .el-sel[data-n]:not([data-n="0"]) .el-az-sel{flex-wrap:wrap;overflow-x:visible;gap:6px 8px}
  .el-sel .el-az-sel::before{flex:1 0 100%}
  body.el-ha-sel main{padding-bottom:170px}
}

/* 11.55 — «Lavora con noi», il modulo a sezioni (Pietro, 11/10: «sembra tutta una pagina senza sezioni»;
   grafica bozze/annunci-sezioni.html). Ogni sezione è un riquadro con il numero, il titolo e una riga che
   dice cosa si chiede: forn_sez() in pages/fornitore.php. In cima l'indice, che al telefono diventa una
   riga sola. Vale per il modulo pubblico, quello dentro un annuncio e «I suoi dati» della pagina personale. */
.g-sez{background:#fff;border:1px solid #DDE2EF;border-radius:18px;margin:0 0 16px;overflow:hidden;box-shadow:0 1px 2px rgba(10,13,49,.04),0 8px 24px rgba(10,13,49,.05);scroll-margin-top:16px}
.g-sez-t{display:flex;gap:14px;align-items:center;padding:16px 22px;background:#F3F5FC;border-bottom:1px solid #DDE2EF}
.g-sez-t i{font:700 15px Montserrat,sans-serif;font-style:normal;background:var(--blu);color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.g-sez-t div{min-width:0;flex:1}
.g-sez-t b{font:700 18px/1.2 Montserrat,sans-serif;display:block}
.g-sez-t span{color:var(--muted);font-size:14px;display:block;margin-top:2px}
.g-sez-c{padding:22px}
.g-sez-c > .g-blocco{border:0;padding:0;border-radius:0}
.g-sez-c > .forn-consenso + .forn-consenso{margin-top:8px}
.g-corpo > .g-sez:last-of-type,.g-corpo .forn-modulo > .g-sez:last-of-type{margin-bottom:0}
.g-corpo .forn-modulo{margin-top:16px}
.g-indice{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;align-items:center}
.g-indice a{display:inline-flex;gap:8px;align-items:center;background:#fff;border:1px solid #DDE2EF;border-radius:99px;padding:6px 14px 6px 6px;font-size:14px;font-weight:600;color:#1B2140;text-decoration:none}
.g-indice a:hover{border-color:var(--blu)}
.g-indice a i{font:700 12px Montserrat,sans-serif;font-style:normal;background:#E6E9F8;color:var(--blu);width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.g-quanto{display:none;color:var(--muted);font-size:14px;margin:0 0 14px}
.forn-piu{font-weight:400;color:var(--muted);font-size:13px;margin-left:6px}
/* il segnaposto della foto era figlio diretto di una riga flessibile e si allargava a mezza pagina */
.forn-foto-su > span.forn-foto{flex:0 0 64px;width:64px;height:64px}
.forn-cv-gia{margin:0 0 8px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.forn-cv-gia label{display:inline-flex;gap:6px;align-items:center;margin:0;font-weight:400;font-size:14px}
/* Le scelte ridisegnate (Pietro, 11/10: «le selezioni delle scelte sono un po' generiche»): riquadri bianchi
   con il bordo e il segno davanti, quadrato dove se ne scelgono più d'una, tondo dove se ne sceglie una;
   scelta = bordo e fondo azzurro, segno pieno. Sì e no: due pulsanti separati, non una pastiglia unica. */
.forn-modulo .forn-multi{gap:10px}
.forn-modulo .forn-sn{background:none;padding:0;gap:10px;border-radius:0}
.forn-modulo .forn-multi label,.forn-modulo .forn-sn label{background:#fff;border:1.5px solid #CCD2E3;border-radius:12px;padding:10px 16px 10px 12px;gap:10px;color:#1B2140;font-size:15px;font-weight:500;box-shadow:none;justify-content:flex-start;text-align:left;transition:border-color .12s}
.forn-modulo .forn-sn label{min-width:96px}
.forn-modulo .forn-multi label:hover,.forn-modulo .forn-sn label:hover{background:#fff;border-color:#6B7490}
.forn-modulo .forn-multi label::before,.forn-modulo .forn-sn label::before{content:'';width:18px;height:18px;border:1.5px solid #9AA3BE;border-radius:5px;background:#fff;flex:0 0 auto;box-sizing:border-box}
.forn-modulo .forn-multi label:has(input[type=radio])::before,.forn-modulo .forn-sn label::before{border-radius:50%}
.forn-modulo .forn-multi label:has(input:checked),.forn-modulo .forn-sn label:has(input:checked){background:#EEF0FF;border-color:var(--blu);color:#0A12CF;font-weight:600;box-shadow:none}
.forn-modulo .forn-multi label:has(input[type=checkbox]:checked)::before{background:var(--blu);border-color:var(--blu)}
.forn-modulo .forn-multi label:has(input[type=checkbox]:checked)::after{content:'';position:absolute;left:18px;top:50%;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:translateY(-60%) rotate(45deg)}
.forn-modulo .forn-multi label:has(input[type=radio]:checked)::before,.forn-modulo .forn-sn label:has(input:checked)::before{background:var(--blu);border-color:var(--blu);box-shadow:inset 0 0 0 3.5px #fff}
.forn-modulo .forn-multi label:has(input:disabled),.forn-modulo .forn-sn label:has(input:disabled){opacity:.7}
@media(max-width:600px){
  .g-sez{border-radius:14px;margin-bottom:12px}.g-sez-t{padding:12px 14px;gap:10px}.g-sez-t b{font-size:16px}.g-sez-t span{font-size:13px}
  .g-sez-c{padding:16px 14px}.g-indice{display:none}.g-quanto{display:block}
  .forn-modulo .forn-multi label,.forn-modulo .forn-sn label{padding:10px 12px;justify-content:flex-start;text-align:left;min-width:0}
}
/* 11.55 — «Annunci e candidature»: la barra dei posti coperti e i conti dei candidati, che al telefono
   vanno a capo invece di uscire dal riquadro; la nota della segreteria nella scheda del candidato */
.ann-barra{height:6px;border-radius:99px;background:#E6E9F8;margin-top:6px;max-width:120px;overflow:hidden}
.ann-barra span{display:block;height:100%;background:#0E7A4E;border-radius:99px}
.ann-conti{display:flex;flex-wrap:wrap;gap:6px}
.ann-urg{color:#B3261E;font-weight:600}
.forn-nota-cand{margin:0 0 6px}.forn-nota-cand textarea{width:100%;margin-top:4px}
/* 11.56: le righe di «Da fare adesso» non hanno il tondo davanti: al telefono la scadenza parte dal bordo */
@media (max-width:600px){.urg-riga .ini-q{padding-left:0}}
/* 11.56 (Pietro, 11/10; bozze/logo-ingresso.html, variante B): la cima della pagina di ingresso. Marchio piccolo,
   frase grande con la seconda riga in lilla, una riga sotto. text-wrap:balance: al telefono non resta una
   parola sola a capo. */
.pb-testa{gap:34px;margin-bottom:40px}
.pb-marchio.pb-mini{align-items:center;gap:14px}
.pb-mini .iz{height:40px;width:auto;display:block;flex:0 0 auto}
.pb-mini .sep{width:1px;height:26px;background:rgba(255,255,255,.35);flex:0 0 auto}
.pb-mini .ko{height:14px;width:auto;display:block;margin-top:5px;flex:0 0 auto}
.pb-frase{opacity:0;animation:pb-su .7s .12s ease-out forwards;max-width:100%}
.pb-t{font:800 clamp(34px,4.4vw,60px)/1.06 Montserrat,sans-serif;color:#fff;letter-spacing:-.015em;margin:0;max-width:16em;text-wrap:balance;overflow-wrap:anywhere}
.pb-t em{font-style:normal;color:#a9a6ff;display:block}
.pb-s{font:400 19px/1.5 'Inter Tight',sans-serif;color:rgba(255,255,255,.74);margin:14px 0 0;max-width:36em}
@media (max-width:700px){.pb-testa{gap:22px;margin-bottom:26px}.pb-mini .iz{height:30px}.pb-mini .ko{height:11px;margin-top:4px}.pb-mini .sep{height:20px}.pb-t{font-size:31px}.pb-s{font-size:16px;margin-top:10px}}


/* 11.57 — annuncio: l'orario sulla riga della data (dalle, alle). Al telefono ogni giorno è una scheda */
.date-riga .ore{display:flex;align-items:center;gap:6px;flex:0 0 auto;font-size:14px;color:var(--muted)}
.form .date-riga .ore input[type=time]{width:138px;min-width:0;margin:0;padding-left:12px;padding-right:8px}
@media (max-width:700px){
  .date-riga{flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px}
  .date-riga input[type=date]{flex:1 1 100%}
  .date-riga .ore{flex:1 1 100%;min-width:0}
  .form .date-riga .ore input[type=time]{flex:1 1 0;width:0;min-width:0}
  .date-riga .btn{margin-left:auto}
}

/* 11.57 — «Scriva alla segreteria»: lo scambio fra fornitore e izeos (pagina personale, scheda interna, «Per me») */
.fm .fm-m{background:var(--soft);border-radius:12px;padding:10px 12px;margin:0 0 8px;max-width:88%;overflow-wrap:anywhere}
.fm .fm-m.noi{background:#EEF0FF;margin-left:auto}
.fm .fm-m small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.fm form{margin-top:10px}
.fm textarea{width:100%;font:inherit;font-size:16px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:0 0 8px;box-sizing:border-box}

/* 11.57 — Impostazioni: l'elenco di righe che si aprono (variante A). Ogni riga: titolo, com'è messa adesso, freccia.
   I riquadri di prima stanno dentro la riga senza la loro cornice e senza ripetere il titolo */
.imp-come{margin:0 0 6px}
.imp-g{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin:22px 0 8px}
.imp-r{background:#fff;border:1px solid var(--line);border-radius:12px;margin:0 0 8px;max-width:920px;scroll-margin-top:80px}
.imp-r>summary{list-style:none;cursor:pointer;display:flex;gap:12px;align-items:center;padding:12px 14px}
.imp-r>summary::-webkit-details-marker{display:none}
.imp-r>summary b{flex:1 1 auto;min-width:0}
.imp-r>summary .imp-st{flex:0 1 auto;font-size:14px;color:var(--muted);text-align:right;overflow-wrap:anywhere}
.imp-r.warn>summary .imp-st{color:#8a6100;font-weight:700}
.imp-r>summary::after{content:"›";color:var(--muted);font-size:20px;line-height:1;flex:0 0 auto}
.imp-r[open]>summary::after{content:"⌄"}
.imp-r[open]{border:2px solid var(--area,#060ED0)}
.imp-r[open]>summary{border-bottom:1px solid var(--line)}
.imp-r>.imp-c{padding:14px}
.imp-r>.imp-c>.panel{border:0;padding:0;margin:0;box-shadow:none;background:none;max-width:none!important}
.imp-r>.imp-c>.panel>h3:first-child,.imp-r>.imp-c>.panel>form>h3:first-child{display:none}
@media (max-width:700px){
  .imp-r>summary{flex-wrap:wrap;gap:2px 10px}
  .imp-r>summary b{flex:1 1 calc(100% - 30px)}
  .imp-r>summary .imp-st{order:3;flex:1 1 100%;text-align:left}
}

.imp-r+.note,.imp-r~.note{margin-top:18px}

/* 11.57 — Ruoli: le sezioni stanno sotto il loro pacchetto, rientrate */
tr.rp-sez td.rp-mod-col{padding-left:34px}
tr.rp-sez td.rp-mod-col b{font-weight:600}
@media (max-width:700px){tr.rp-sez{margin-left:14px}tr.rp-sez td.rp-mod-col{padding-left:12px}}

/* 11.58 — «Condividi» degli annunci (app/annunci_social.php): una parola che apre quattro voci. Stesso aspetto di
   «Copia il suo link» (.bv-copia). La scheda chiusa lascia uscire il menu; aperta è alta abbastanza da contenerlo. */
.cond{position:relative;display:inline-block}
.cond>summary{list-style:none;cursor:pointer;color:var(--area,var(--blu));font-weight:600}
.cond>summary::-webkit-details-marker{display:none}
.cond>summary:hover{text-decoration:underline}
.cond-menu{position:absolute;left:0;top:calc(100% + 8px);z-index:20;min-width:190px;padding:6px;background:#fff;border:1px solid #DDE2EF;border-radius:12px;box-shadow:0 10px 30px rgba(10,13,49,.14);text-align:left}
.cond-menu a,.cond-menu button{display:block;width:100%;margin:0;padding:9px 12px;border:0;border-radius:8px;background:none;font:inherit;font-size:15px;font-weight:400;color:var(--ink,#0a0d31);text-align:left;text-decoration:none;cursor:pointer}
.cond-menu a:hover,.cond-menu button:hover,.cond-menu a:focus-visible,.cond-menu button:focus-visible{background:#f1f3fa;text-decoration:none}
.g-ann:not(.aperto){overflow:visible}
.g-giu-dx{display:flex;align-items:center;gap:18px}
.g-giu-dx .cond-menu{left:auto;right:0}
.g-per-se{display:block;font-size:12.5px;font-weight:400;color:var(--muted,#5d6875)}
td.right .cond{display:block;margin-top:8px;font-size:14px}
td.right .cond-menu{left:auto;right:0}
.soc-img-box{border:1px dashed var(--line);border-radius:12px;padding:12px;background:#fff;text-align:center;max-width:340px}
.soc-img-box img{width:100%;height:auto;display:block;border-radius:8px;margin-bottom:6px}
@media (max-width:700px){
  .g-giu.con-cond{flex-direction:column;align-items:stretch}
  .g-giu.con-cond>.cond{order:2;text-align:center}.g-giu.con-cond>.cond>summary{padding:8px 0}
  .g-giu.con-cond>.cond>.cond-menu{left:50%;transform:translateX(-50%)}
  .g-ann.aperto .g-giu.con-cond{flex-direction:row;align-items:center}
  table.elenco td.ann-az{flex-wrap:wrap}table.elenco td.ann-az>.btn{flex:1 1 100%;text-align:center;justify-content:center}
  table.elenco td.ann-az .cond{flex:1 1 100%;margin-top:4px;text-align:center}table.elenco td.ann-az .cond>summary{padding:8px 0}
  table.elenco td.ann-az .cond-menu{position:static;box-shadow:none;margin-top:2px}
}

/* ---------- 11.59 — «Le sue esigenze» (pages/_esigenze_riquadro.php; grafica bozze/esigenze-accessibilita.html, A) ----------
   Le caselle e i Sì / No sono quelli dei moduli dei fornitori (.forn-multi, .forn-sn). Quello che dipende dal «Sì»
   si apre con :has, senza JavaScript: un browser che non lo conosce scarta la regola e mostra tutto. */
.esg .esg-intro{margin:0 0 12px}
.esg-dom{padding:16px 0;border-top:1px solid var(--line)}
.esg-form > .esg-dom:first-of-type{border-top:0;padding-top:2px}
.esg-q{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.esg-apre{margin-top:16px;display:flex;flex-direction:column;gap:16px}
.esg-dom:has(> .esg-sn .esg-si:not(:checked)) > .esg-apre{display:none}
.esg-form:not(:has(.esg-dom > .esg-sn .esg-si:checked)) .esg-cons{display:none}
.esg-g{display:flex;flex-direction:column;gap:8px;min-width:0}
.esg-t{font-weight:700;font-size:var(--fs-secondario)}
.esg-altre > summary{cursor:pointer;font-weight:600;color:var(--blu);font-size:var(--fs-secondario);margin:2px 0 8px;width:max-content}
.esg label.esg-campo{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:var(--fs-secondario);margin:0}
.esg label.esg-campo input{font:inherit;font-weight:400;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;max-width:520px;width:100%;box-sizing:border-box}
.esg label.pv-cons.esg-cons{margin:16px 0 0}
.esg-salva{margin-top:16px}
.esg-chips{display:flex;flex-wrap:wrap;gap:6px}
.esg-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:99px;background:#EEF0F7;font-size:13px;font-weight:600;color:var(--ink);line-height:1.35}
.esg-chip.grave{background:#FDECEA;color:#7A1E14}
.esg-chip.acc{background:#E4EEFB;color:#0A3E73}
.esg .esg-fatto{margin:4px 0 0;background:#F7F8FC}
.esg .esg-fatto.verde{background:var(--ok-soft)}
.esg-cambia > .esg-form{margin-top:12px}
@media (max-width:600px){
  .esg .forn-multi{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .esg .forn-multi label{justify-content:center;text-align:center;margin:0;padding:8px;min-height:44px;font-size:14px;line-height:1.2;border-radius:12px}
  .esg .esg-salva .btn{width:100%;justify-content:center}
}

.esg .forn-sn label,.esg .forn-multi label{margin:0}

/* 11.59 — la pagina «Esigenze» e il contatore che la apre da Faculty e dal board */
.esg-cont-riga{margin:0 0 14px}
.esg-fb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}
.esg-fb .fb-c{flex:1 1 200px;max-width:320px}
.esg-cat{margin-bottom:14px}
.pag-esigenze .el-cont,.esg-fb + .el-cont{grid-template-columns:repeat(6,minmax(0,1fr))}
#esg-t .esg-chips{gap:5px}
@media (max-width:900px){ .pag-esigenze .el-cont,.esg-fb + .el-cont{grid-template-columns:repeat(3,minmax(0,1fr))} .esg-azioni form,.esg-azioni .btn{width:100%} .esg-azioni .btn{justify-content:center} }
@media (max-width:480px){ .pag-esigenze .el-cont,.esg-fb + .el-cont{grid-template-columns:1fr 1fr} }

/* ---------- 11.61 — «Servizi» dentro l'evento e il board (pages/_servizi.php, _servizi_riquadro.php) ---------- */
/* la riga di un servizio è una .imp-r (11.57): sotto il nome, quando e dove; a destra i tre numeri */
.srv-top{margin-bottom:4px}.srv-top h2{margin:0}
.srv-intro{margin:0 0 14px}
.srv-r{max-width:none}
.srv-r>summary b small{display:block;font-weight:400;font-size:14px;color:var(--muted);margin-top:2px}
.srv-r>summary b .pill{vertical-align:2px;margin-left:4px}
.srv-r.srv-ann>summary b{color:var(--muted)}
.srv-num{display:flex;gap:14px;flex-wrap:wrap;align-items:baseline;white-space:nowrap}
.srv-num b{font-size:17px}
.srv-si{color:var(--ok);font-weight:600}.srv-no{color:var(--danger);font-weight:600}.srv-att{color:#8a6100;font-weight:600}
.srv-num-g{margin:0 0 10px;font-size:15px}
.srv-az{margin:0 0 14px;gap:8px;flex-wrap:wrap;align-items:center}
.srv-az form{margin:0}
.srv-cambio{margin:0 0 14px}.srv-cambio form{margin:10px 0 6px;gap:8px}
.srv-ferme{margin:0 0 10px}
.srv-r .panel{margin:0 0 14px;max-width:none}
.srv-gruppo{margin:0 0 12px}
.srv-riga-az{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:wrap;margin:0}
.srv-riga-az select{width:auto;min-width:150px;padding:5px 8px;font-size:14px;overflow:hidden}
.srv-dati>.srv-form{margin-top:12px;max-width:640px}
.srv-togli{margin:14px 0 0}
.srv-nuovo{max-width:680px;scroll-margin-top:80px}
.srv-form .srv-due{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
/* le scelte a pastiglia (che cos'è, a chi): un radio dentro un'etichetta, come .forn-sn */
.srv-generi,.srv-achi{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px;align-items:center}
.srv-et{font-size:13px;color:var(--muted);margin-right:4px}
.form label.srv-gen,label.srv-gen{display:inline-flex;margin:0;width:auto;cursor:pointer}
label.srv-gen input{position:absolute;opacity:0;width:1px;height:1px}
.form label.srv-gen span,label.srv-gen span{display:inline-block;border:1.5px solid var(--line);border-radius:999px;padding:6px 14px;font-size:14.5px;background:#fff;color:inherit;font-weight:400}
label.srv-gen input:checked+span{background:var(--blu);border-color:var(--blu);color:#fff;font-weight:600}
label.srv-gen input:focus-visible+span{outline:2px solid var(--blu);outline-offset:2px}
label.srv-gen input:disabled+span{opacity:.45;cursor:default}
.form label.srv-chiede,label.srv-chiede{display:flex;gap:10px;align-items:flex-start;margin:4px 0 14px;font-weight:400}
label.srv-chiede input{flex:0 0 22px;width:22px;height:22px;order:0;margin:1px 0 0}
.form label.srv-chiede span{color:inherit;font-size:15px}
.srv-filtri{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 10px}
.srv-cand{margin:0 0 12px}
label.srv-ck{display:flex;gap:10px;align-items:center;margin:0;font-weight:600;cursor:pointer}
.srv-copia{margin:14px 0 0;gap:8px;align-items:flex-end;border-top:1px solid var(--line);padding-top:12px}
.srv-copia label{margin:0}
/* nella pagina della persona: un riquadro per servizio */
.srv-suo{scroll-margin-top:80px}
.srv-info{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:6px 0 8px;font-size:16px}
.srv-info dt{color:var(--muted)}.srv-info dd{margin:0;font-weight:600}
.srv-nota{margin:0 0 10px}
.srv-scelta{display:flex;gap:10px;margin:12px 0 6px}
.srv-scelta .btn{flex:1 1 0;justify-content:center;text-align:center;min-height:48px;font-size:16px}
.srv-scelta .btn.on.no{background:var(--muted);border-color:var(--muted);color:#fff}
.srv-cambia{margin:0 0 8px}
.srv-cal{margin-top:10px}
.srv-cambiato{margin:0 0 10px}
@media (max-width:700px){
  .srv-r>summary .srv-num{gap:10px;font-size:13.5px;white-space:normal}.srv-num b{font-size:15px}
  .srv-az .btn,.srv-az form,.srv-az form .btn{width:100%;justify-content:center}
  .srv-riga-az{justify-content:flex-start}
  .srv-form .srv-due{grid-template-columns:1fr 1fr}
  .srv-filtri .btn{flex:0 0 auto}
}
@media (max-width:900px){
  /* nella scheda di una persona, al telefono: tendina e due pulsanti su UNA riga, non tre blocchi impilati */
  table.tab-scheda .srv-riga-az{display:flex;flex-wrap:nowrap;gap:6px;width:100%}
  table.tab-scheda .srv-riga-az select{flex:1 1 auto;min-width:0;width:auto}
  table.tab-scheda .srv-riga-az .btn{width:auto!important;flex:0 0 auto}
}
/* 11.63 — «Cosa trova nella sua pagina» più chiaro (Pietro, 11/10/2026; grafica bozze/cosa-trova-chiara.html):
   le sei voci in tre gruppi con «Acceso./Spento.», nella Scheda evento e in Faculty; in Faculty il riquadro
   chiuso dice «Per tutti» e «Solo per qualcuno», aperto ha due riquadri numerati. */
.ct-g{font-family:Montserrat,sans-serif;font-size:.78em;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:18px 0 0}
.ct-scheda>.ct-g:first-of-type,.ct-form>.ct-g:first-of-type{margin-top:4px}
.ct-g+.ct-r{border-top:0;padding-top:6px}
.ct-st{font-weight:700}.ct-st.on{color:#0B7A43}.ct-st.off{color:var(--muted)}
/* la frase segue la levetta com'è adesso, anche prima di salvare; chi non conosce :has() legge quella del server */
.ct-r.spento .ct-quando.si,.ct-r:not(.spento) .ct-quando.no{display:none}
@supports selector(:has(a)){
  .ct-r:has(.ct-int input:checked) .ct-quando.si,.ct-r:has(.ct-int input:not(:checked)) .ct-quando.no{display:block}
  .ct-r:has(.ct-int input:checked) .ct-quando.no,.ct-r:has(.ct-int input:not(:checked)) .ct-quando.si{display:none}
  .ct-r:has(.ct-int input:checked) .t>b{color:inherit}.ct-r:has(.ct-int input:not(:checked)) .t>b{color:var(--muted)}
  .ct-r:has(.soc-modi){align-items:flex-start}
}
.ct-dove{display:flex;gap:10px 16px;align-items:center;flex-wrap:wrap;background:#EEF0FF;border:1px solid #C9CEF5;border-radius:12px;padding:12px 14px;margin-top:16px}
.ct-dove .t{flex:1 1 260px}
.ct-blocco{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-top:12px;background:#fff}
.ct-blocco h4{margin:0 0 2px;font-family:Montserrat,sans-serif;font-size:1.02em;display:flex;gap:8px;align-items:center}
.ct-blocco .ct-sotto{margin:0 0 4px}.ct-blocco .ct-sing-nota{margin:0}
.ct-n{display:inline-flex;width:24px;height:24px;border-radius:50%;background:var(--blu);color:#fff;align-items:center;justify-content:center;font-size:.8em;flex:none}
.ct-righe{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:8px}
.ct-rg{display:flex;gap:6px 8px;align-items:flex-start}
.ct-rg>b{flex:0 0 160px;white-space:nowrap;padding-top:5px}
.ct-ch{flex:1 1 0;min-width:0;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ct-ch.ct-chi{display:block;padding-top:5px;font-weight:400}
.ct-az{display:flex;gap:8px;flex-wrap:wrap}
.ct-leg{display:inline-flex;gap:6px;align-items:center}
.ct-agg{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap;border-top:1px dashed var(--line);margin:10px 0 0;padding-top:12px}
.ct-agg select.ct-modo{margin:0;min-width:240px}
.ct-box>.ct-sempre{margin-top:12px;border-top:0;padding-top:0}
@media(max-width:600px){
  .ct-rg{flex-wrap:wrap}.ct-rg>b{flex-basis:100%;padding-top:0}.ct-ch{flex-basis:100%}.ct-ch.ct-chi{padding-top:0}
  .ct-az{flex:1 1 100%}.ct-az .btn,.ct-dove .btn{flex:1 1 100%;justify-content:center;text-align:center}
  .ct-agg select.ct-modo{min-width:0;width:100%!important}
}

/* ---------- 11.64 — LA GUIDA A CAPITOLI e il «?» accanto al titolo (app/guida.php) ---------- */
.gd-q{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:0;padding:0;border-radius:50%;border:1.5px solid var(--area);background:#fff;color:var(--area);font:700 16px Montserrat,sans-serif;cursor:pointer;margin-left:10px;vertical-align:middle}
.gd-q:hover,.gd-q:focus-visible{background:var(--area);color:#fff}
dialog.gd-riq{position:fixed;inset:0 0 0 auto;margin:0;width:440px;max-width:100%;height:100%;max-height:none;border:0;padding:0;background:#fff;color:var(--ink);box-shadow:-12px 0 40px rgba(10,14,40,.22);overflow:auto}
dialog.gd-riq::backdrop{background:rgba(10,14,40,.38)}
.gd-in{position:relative;padding:22px 24px 28px}
.gd-x{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--line);background:#fff;font-size:20px;line-height:1;cursor:pointer;color:var(--ink)}
.gd-sei,.gd-come{font:600 var(--fs-micro) Montserrat,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.gd-come{color:var(--area)}
.gd-riq h2{margin:6px 44px 10px 0;font-size:var(--fs-titolo)}
.gd-cap h2{margin:4px 0 10px;font-size:var(--fs-titolo)}
.gd-chi{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 10px;font-size:var(--fs-piccolo);color:var(--muted)}
.gd-passi{list-style:none;margin:14px 0;padding:0;counter-reset:gp}
.gd-passi>li{position:relative;padding:0 0 14px 40px;counter-increment:gp}
.gd-passi>li::before{content:counter(gp);position:absolute;left:0;top:-2px;width:28px;height:28px;border-radius:50%;background:var(--area);color:#fff;font:700 .85em Montserrat,sans-serif;display:flex;align-items:center;justify-content:center}
.gd-passi>li.gd-solo-foto{padding-left:0;counter-increment:none}.gd-passi>li.gd-solo-foto::before{display:none}
.gd-dove{font-size:var(--fs-piccolo);color:var(--muted)}
.gd-riga{border-top:1px solid var(--line);padding:12px 0}
.gd-riga summary{font-weight:600;cursor:pointer}
.gd-riga p{margin:8px 0 0}
.gd-prima{margin-top:16px}
.gd-altra{margin-top:10px}.gd-altra ol{margin:4px 0 0;padding-left:20px;color:var(--muted)}
.gd-ric{margin:8px 0 0;padding-left:18px}.gd-ric li{padding:3px 0}
.gd-voci .panel.guida{box-shadow:none;margin:12px 0 0;background:var(--paper)}
.gd-due{display:grid;grid-template-columns:270px minmax(0,1fr);gap:22px;align-items:start}
.gd-ind{position:sticky;top:12px;padding:16px;max-height:calc(100vh - 24px);overflow:auto}
.gd-ind h4{font:600 var(--fs-micro) Montserrat,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 0 4px}
.gd-ind h4:first-child{margin-top:0}
.gd-ind a{display:block;padding:6px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:var(--fs-piccolo)}
.gd-ind a:hover{background:var(--soft)}
.gd-ind a.on{background:var(--area);color:#fff;font-weight:600}
.gd-sel{display:none}.gd-sel .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.gd-foto{position:relative;margin:10px 0 4px;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 4px 16px rgba(10,14,40,.08);max-width:min(760px,var(--w,760px))}
.gd-foto img{display:block;width:100%;height:auto}
.gd-n{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;background:#D7263D;color:#fff;font:700 14px Montserrat,sans-serif;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px #fff,0 2px 8px rgba(0,0,0,.35)}
.gd-n-tel{display:none}
.gd-nn{display:inline-flex;width:20px;height:20px;border-radius:50%;background:#D7263D;color:#fff;font:700 11px Montserrat,sans-serif;align-items:center;justify-content:center;vertical-align:1px}
.gd-box{border-radius:12px;padding:14px 16px;margin-top:12px}
.gd-box.fuori{background:#EEF0FF;border:1px solid #C9CEF5}.gd-box.err{background:var(--warn-soft);border:1px solid #EBD9A8}
.gd-box b.t{display:block;margin-bottom:4px}.gd-box p{margin:0 0 6px}.gd-box p:last-child{margin:0}
.gd-scorri{overflow-x:auto}
table.gd-ruoli{width:100%;border-collapse:collapse;min-width:640px}
table.gd-ruoli th,table.gd-ruoli td{border-bottom:1px solid var(--line);padding:8px 6px;text-align:center;font-size:var(--fs-piccolo)}
table.gd-ruoli th:first-child,table.gd-ruoli td:first-child{text-align:left}
.gd-l-scrive{color:var(--ok);font-weight:700}.gd-l-no{color:var(--muted)}
.gd-parole dt{font-weight:700;margin-top:12px}.gd-parole dd{margin:2px 0 0;color:var(--navy)}
body.gd-stampa{background:#fff;max-width:820px;margin:0 auto;padding:20px}
.gd-stampa-testa{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.gd-stampa-sotto{color:var(--muted);font-size:var(--fs-piccolo)}
body.gd-stampa .gd-cap{border-top:2px solid var(--ink);padding-top:14px;margin-top:22px}
@media(max-width:900px){
  .gd-due{grid-template-columns:1fr}.gd-ind{display:none}.gd-sel{display:block;margin-bottom:14px}.gd-sel select{width:100%}
}
@media(max-width:700px){
  .gd-n-pc{display:none}.gd-n-tel{display:flex}
  .gd-foto{max-width:var(--wt,100%)}
  dialog.gd-riq{inset:auto 0 0 0;width:100%;height:76%;border-radius:18px 18px 0 0;box-shadow:0 -12px 40px rgba(10,14,40,.25)}
  .gd-in{padding:18px 16px 24px}
  .gd-in::before{content:"";display:block;width:44px;height:5px;border-radius:9px;background:var(--line);margin:0 auto 10px}
}
@media print{
  dialog.gd-riq,.gd-q,.gd-stampa-testa,.gd-ind,.gd-sel{display:none!important}
  .gd-due{display:block}.gd-foto{box-shadow:none;max-width:150mm}
  .gd-passi>li,.gd-box,.gd-altra{break-inside:avoid}
  .gd-n,.gd-nn,.gd-passi>li::before{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  details.gd-riga>*{display:block}
}

/* 11.66 — «Scrivi e scegli»: la riga dove si scrive al posto di una tendina di persone
   (assets/comportamenti.js, data-scrivi-scegli). La tendina resta nella pagina, ridotta a un punto. */
/* 11.73: senza transizione. I campi di .form ne hanno una, e la tendina si rimpiccioliva in un quinto di secondo:
   al telefono, appena aperta, la Scheda evento era per un attimo 25 punti più larga dello schermo (verifica-1147) */
select.ss-sotto{transition:none!important;position:absolute!important;width:1px!important;min-width:0!important;max-width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;margin:0!important;opacity:0;pointer-events:none}
.ss{display:block;min-width:0}
.ss.ss-piu{display:inline-block;flex:1 1 130px;max-width:240px}
.ss-campo{width:100%;font-family:inherit}
.ss-campo.cel.piccola{color:var(--ink)}
table .ss-campo.cel.piccola:hover{border-color:var(--line);background:#fff}
table .ss-campo.cel.piccola:focus{border-color:var(--area);background:#fff;outline:0;box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}
.ss-campo::placeholder{color:var(--muted);opacity:1}
.ss-piu .ss-campo{border:1px dashed #D7DDEE;background:transparent;border-radius:999px;padding:3px 10px;font-size:var(--fs-piccolo);color:var(--ink)}
.ss-piu .ss-campo::placeholder{color:var(--area);font-weight:600}
.ss-piu .ss-campo:hover{border-color:var(--area);background:#fff}
.ss-piu .ss-campo:focus{outline:0;border-style:solid;border-color:var(--area);background:#fff;box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}
.ss-piu .ss-campo:focus::placeholder{color:var(--muted);font-weight:400}
.ss-lista{position:fixed;z-index:70;margin:0;padding:5px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 10px 28px rgba(10,13,49,.16);max-height:min(360px,70vh);overflow-y:auto;font-size:var(--fs-secondario);color:var(--ink);text-align:left}
.ss-lista[hidden]{display:none}
.ss-lista li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:7px 10px;border-radius:7px;cursor:pointer}
.ss-lista li.su,.ss-lista li[data-i]:hover{background:#F4F6FB}
.ss-lista li b{color:var(--area)}
.ss-lista li small{color:var(--muted);font-size:var(--fs-piccolo);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:44%;flex:0 1 auto}
.ss-lista li.ss-nota{color:var(--muted);font-size:var(--fs-piccolo);cursor:default}
.ss-lista li.ss-altro{color:var(--area);font-weight:600}
.ss-lista li.ss-nota + li.ss-altro,.ss-lista li[data-i]:not(.ss-altro) + li.ss-altro{border-top:1px solid #F0F2F8;border-radius:0 0 7px 7px;margin-top:3px}
/* «+ altro relatore» resta la scritta leggera di prima: diventa una riga solo quando ci si passa o ci si scrive */
.rel-altri .ss-piu .ss-campo{border-color:transparent;padding-left:2px}
.rel-altri .ss-piu .ss-campo:hover,.rel-altri .ss-piu .ss-campo:focus{padding-left:10px}
@media (max-width:600px){
  .ss-campo,.ss-piu .ss-campo{font-size:16px;padding-top:8px;padding-bottom:8px}
  .ss.ss-piu{max-width:100%;flex-basis:100%}
  .ss-lista li{padding:12px 10px}
}
@media print{.ss-lista{display:none!important}}
/* 11.71 — «scrivi e scegli» in tutte le pagine. Fuori dalle tabelle la riga è un campo come gli altri (.ss-veste):
   dentro un .form prende la veste dei campi del modulo, dentro un filtro (.fb-s) quella della pastiglia. */
.ss.ss-v{flex:1 1 220px;min-width:min(220px,100%);max-width:100%}
.ss-veste{padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;font-size:var(--fs-secondario);color:var(--ink)}
.ss-veste:focus{border-color:var(--area);outline:0;box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}
.ss-veste:disabled{background:#F4F6FB;color:var(--muted)}
.fb-s .ss.ss-v{flex:0 1 auto;min-width:0}
.fb-s .ss-veste{width:150px;padding:4px 2px;border:0;border-radius:0;background:transparent;font-size:inherit;font-weight:600;color:var(--blu)}
.fb-s .ss-veste:focus{box-shadow:none;border:0}
.fb-s .ss-veste::placeholder{color:var(--blu);font-weight:600}
.fb-s .ss-veste:focus::placeholder{color:var(--muted);font-weight:400}
@media (max-width:600px){.fb-s .ss.ss-v{flex:1 1 auto}.fb-s .ss-veste{width:100%}}

/* 11.67 — «Vedi la sua pagina» sotto ogni nome di professionista, anche nel Programma (app/vedi_pagina.php).
   .vp-in: accanto a un nome scritto in riga con altri (i moderatori, più relatori); .vp-chip: la freccia dentro
   una pastiglia mentre si modifica; .vp-segue: sotto la casella «scrivi e scegli», segue la persona scelta. */
.vp-in{font-weight:400;font-size:var(--fs-piccolo)}
.vp-m{white-space:nowrap;margin-right:8px}
.ses-l-r .r .vp-riga{font-size:var(--fs-piccolo)}
.vp-segue{display:block}
.vp-segue .vp-riga{margin:4px 0 2px 2px}
.mod-chip a.vp-chip{font-weight:700;text-decoration:none;margin-left:6px;padding:0 2px}
.mod-chip a.vp-chip:hover{text-decoration:underline}
@media (max-width:600px){
  .vp-m{white-space:normal;display:block;margin-right:0}
  .mod-chip a.vp-chip{padding:4px 6px}
}
/* 11.67 */ @media (max-width:600px){a.vp-vedi.vp-in{white-space:nowrap}}

/* 11.68: «Nomi da sistemare» in Professionisti (prima → dopo, con la spunta) */
.mn-riga{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-top:1px solid var(--line,#E3E7F2);cursor:pointer}
.mn-riga input{flex:0 0 auto;width:18px;height:18px;margin:3px 0 0}
.mn-t{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline}
.mn-prima,.mn-fr{color:var(--muted,#6b7280)}
.mn-dopo{font-weight:600}
.mn-occhio{flex:0 0 100%;font-size:12.5px;color:#8a5a00}
.mn-piede{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}
@media (max-width:600px){.mn-piede .btn{flex:1 0 100%;text-align:center}}

/* 11.69 — LA BARRA DELLE SPUNTE (barra_sel() in layout.php; grafica approvata: bozze/faculty-spunte.html).
   Attaccata in basso, compare quando in un elenco c'è qualcosa di spuntato. La veste è quella che la barra
   degli elenchi ha al telefono (.el-az-sel, 11.54): bianca, riga sopra, ombra verso l'alto. Al computer
   lascia libero il menu a sinistra (250 px, come la fascia colorata in cima). */
body.bs-aperta main{padding-bottom:120px}
.barra-sel{position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--line);
  box-shadow:0 -6px 18px rgba(0,0,0,.08);padding:12px 24px calc(12px + env(safe-area-inset-bottom));display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.barra-sel[hidden]{display:none}
.barra-sel .bs-t{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.barra-sel .bs-t b{font-size:var(--fs-testo)}
.barra-sel .bs-az{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.barra-sel .bs-az .btn[hidden]{display:none}
@media (min-width:901px){ .barra-sel{left:250px} }
@media (max-width:700px){
  body.bs-aperta main{padding-bottom:250px}
  .barra-sel{padding:10px 14px calc(10px + env(safe-area-inset-bottom));gap:8px}
  .barra-sel .bs-t{flex:1 1 100%;flex-direction:row;flex-wrap:wrap;gap:2px 8px;align-items:baseline}
  .barra-sel .bs-az{flex:1 1 100%}
  .barra-sel .bs-az .btn{flex:1 1 100%;justify-content:center;text-align:center}
  .barra-sel .bs-az .btn.bs-togli{flex:0 0 auto;margin:0 auto;border:0;background:none;text-decoration:underline;padding:2px 8px;min-height:0}
}
@media print{ .barra-sel{display:none} }
/* 11.69 — «Togli dalla faculty…»: il sostituto si cerca scrivendo. Le due scelte una sotto l'altra anche al
   computer (in due colonne, nel riquadro stretto di destra, la riga dove si scrive era larga un dito) */
.tf-scelte{grid-template-columns:1fr}
.tf .ss{width:100%;margin-top:6px}
.tf .ss-campo.cel.piccola{width:100%;padding:10px;border:1.5px solid var(--line);border-radius:8px;background:#fff;font-size:var(--fs-secondario)}
.tf .ss-campo.cel.piccola:focus{border-color:var(--area);outline:0;box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}
/* 11.69 — «Da chiudere» → Riserva: la riga dove si scrive si deve vedere che è un campo (senza bordo sembrava una scritta) */
.da-chiudere .ss{display:inline-block;width:220px;max-width:100%;vertical-align:middle}
.da-chiudere .ss-campo.cel.piccola{border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:#fff;font-size:var(--fs-secondario)}
.da-chiudere .ss-campo.cel.piccola:focus{border-color:var(--area);outline:0;box-shadow:0 0 0 3px rgba(var(--alone,6,14,208),.10)}

/* 11.70 — la lettera libera (pages/_lettera_libera.php) e «Cosa gli abbiamo scritto» (pages/_scritto.php) */
.ll-primo{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ll-dati{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px;align-items:flex-start}
.ll-dato,.ll-altri > summary{font:inherit;font-size:var(--fs-piccolo);font-weight:600;border:1px solid var(--line);background:var(--soft);color:inherit;border-radius:99px;padding:5px 11px;cursor:pointer}
.ll-altri > summary{list-style:none;background:transparent;display:inline-block}
.ll-altri > summary::-webkit-details-marker{display:none}
.ll-altri[open]{flex:1 1 100%}
.ll-altri .ll-dati{margin:8px 0 0}
.ll-testo{font-family:ui-monospace,Menlo,monospace;font-size:13px;width:100%;max-width:100%}
.ll-all{margin:2px 0 14px}
.ll-file{display:flex;align-items:center;gap:10px;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:9px 12px;margin:6px 0}
.ll-file > span:first-child{flex:1;min-width:0;overflow-wrap:anywhere}
.ll-scegli{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;font-weight:600}
.ll-scegli input{font:inherit;font-size:var(--fs-piccolo);font-weight:400;max-width:100%}
.ll-riga-btn{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ll-bianco{margin-left:auto}
.ll-cerca{width:100%;margin-bottom:8px}
.ll-elenco{max-height:62vh;overflow:auto}
.ll-elenco tr[hidden]{display:none}
.ll-loso{display:flex;gap:8px;align-items:flex-start;margin-top:12px}
.com-r.ll-voce{background:var(--soft);border-radius:12px;padding:12px 14px;border-top:0;margin-bottom:6px}
.scr-r{padding:8px 0;border-top:1px solid var(--soft)}
.scr-r:first-child{border-top:0}
.scr-r .com-p{border-top:0;padding:0}
.scr-file{margin-top:4px}
.scr-testo{margin-top:6px}
.scr-testo > summary{cursor:pointer;text-decoration:underline}
.scr-testo .mail-anteprima{margin-top:8px}
@media (max-width:700px){
  .ll-dato,.ll-altri > summary{padding:8px 12px;font-size:var(--fs-secondario)}
  .ll-testo{font-size:16px}
  .ll-elenco{max-height:none}
  .ll-bianco{margin-left:0}
  .ll-riga-btn .btn{flex:1 1 auto;justify-content:center}
}
.ll-board{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
#ll-chi .ll-riga-btn{flex-direction:column}
#ll-chi .ll-riga-btn .btn{justify-content:center;text-align:center;width:100%}

/* 11.72 — «Riapri il viaggio»: i blocchi sono quelli che ci sono già (note, srv-cambio, mail-anteprima, tv-riq).
   Qui solo: due pastiglie nella colonna «Stato» che vanno a capo sul telefono, e gli spazi del riquadro giallo. */
.tv-pill{display:flex;gap:4px;flex-wrap:wrap}
.vri-nota form.row{margin:10px 0 6px;gap:8px;flex-wrap:wrap}
.vri-nota .vri-leggi{margin:2px 0 6px}.vri-nota .vri-leggi summary{cursor:pointer}
.vri-nota .mail-anteprima{margin-top:8px;background:var(--card,#fff)}
.vri-suo{margin:12px 0}
.bv-gestisci .vri-nota{margin:12px 0 0}
@media(max-width:600px){.vri-nota form.row .btn{flex:1 1 100%;text-align:center}}

/* 11.73 — IL RIQUADRO DELLE PAGINE DI ACCESSO in due metà (auth_inizio in app/layout.php; grafica approvata da
   Pietro il 13/10/2026, variante R2 di bozze/accesso-logo-bianco.html). A sinistra il blu profondo con il marchio
   bianco, la frase e l'etichetta; a destra il modulo. Al telefono il blu torna in cima.
   Il blu #1B2170 di pulsanti e collegamenti vale SOLO dentro questo riquadro: nel resto di Konnect restano com'erano.
   Sta in fondo al foglio perché deve vincere sulle regole di .auth-card scritte più su (anche quelle del telefono). */
.auth-card.auth-due{--auth-blu:#1B2170;padding:0;overflow:hidden;border-radius:24px;max-width:880px;display:grid;grid-template-columns:1fr 1.05fr}
.auth-blu{position:relative;overflow:hidden;background:linear-gradient(140deg,#141953 0%,#1B2170 55%,#2A32A8 100%);color:#fff;
  padding:40px 38px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:520px}
.auth-blu::before,.auth-blu::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.13);pointer-events:none}
.auth-blu::before{width:520px;height:520px;right:-300px;top:-240px}
.auth-blu::after{width:340px;height:340px;left:-170px;bottom:-210px;border-color:rgba(255,255,255,.09)}
.auth-blu > *{position:relative;z-index:1}
.auth-blu .auth-marchio{margin:0;text-align:left}
.auth-frase{font-family:Montserrat,sans-serif;font-weight:700;font-size:30px;line-height:1.18;letter-spacing:-.02em;margin:0;color:#fff}
.auth-frase span{color:#AEB4FF;display:block}
.auth-eti{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.24);padding:5px 13px;border-radius:99px}
.auth-eti svg{width:11px;height:11px}
.auth-dentro{padding:44px 42px 34px;align-self:center;min-width:0}
.auth-dentro h1{text-align:left;margin:0 0 8px}
.auth-dentro > .form{margin-top:14px}
.auth-due .btn.primary{background:var(--auth-blu);border-color:var(--auth-blu);color:#fff;box-shadow:0 8px 20px rgba(27,33,112,.22)}
.auth-due .btn.primary:hover{background:#141953;border-color:#141953;color:#fff;filter:none}
.auth-due a{color:var(--auth-blu)}
.auth-due a.btn.primary{color:#fff;display:flex;justify-content:center;box-sizing:border-box}
.auth-due .btn-google{width:100%;display:flex;justify-content:center;align-items:center;gap:10px;box-sizing:border-box}
/* i quattro :not servono a vincere sulla regola generale dei campi di .form, che li ha */
.auth-card.auth-due .form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="color"]){background:#fff;border:1.5px solid #DDE1EE;border-radius:12px}
.auth-card.auth-due .form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="color"]):focus{border-color:var(--auth-blu);box-shadow:0 0 0 4px rgba(27,33,112,.12);outline:0}
.auth-nota{margin:0 0 16px}
.auth-nota:not(:first-child){margin-top:14px}
.auth-oppure{display:flex;align-items:center;gap:12px;margin:18px 0 14px;font-size:12px;color:#7A83A0;white-space:nowrap}
.auth-oppure::before,.auth-oppure::after{content:"";flex:1;height:1px;background:#E2E6F0}
.auth-sotto{margin:14px 0 0;text-align:center}
.auth-piede{margin-top:18px;padding-top:16px;border-top:1px solid #EEF1F8;text-align:center}
.auth-piede p{margin:0}
.auth-piede .pv-login{margin:10px 0 0}
@media (max-width:700px){
  .auth-card.auth-due{display:block;padding:0;border-radius:20px}
  .auth-blu{min-height:0;padding:26px 20px 22px;gap:14px;align-items:center;text-align:center}
  .auth-blu .auth-marchio{text-align:center}
  .auth-frase{font-size:19px}
  .auth-dentro{padding:22px 20px 24px}
  .auth-dentro h1{font-size:22px}
}

/* 11.75 — Posta «Per me»: il riquadro «Scritto alla segreteria» e l'archivio «Richieste ricevute» (app/richieste.php) */
.pme-r .pme-az{margin-top:8px}

/* 11.76 (Pietro, 13/10/2026): Konnect aperto dall'icona, a schermo intero, non ha le frecce del browser: le
   mettiamo noi, e solo lì (display-mode: standalone); nel browser restano nascoste. Una freccia che non porta da
   nessuna parte è spenta (.fr-spenta, comportamenti.js).
   11.88 (Pietro, 14/10; bozze/frecce-avanti-indietro.html, T-B e C-A): al telefono in fondo alla barra, dopo la
   nuvoletta e il pallino dei ritardi (il ☰ torna il primo); al computer in cima al menu blu, sopra il logo, nello
   stile delle voci del menu. La ricerca torna larga. */
.mob-ind,.mob-frecce,.aside-frecce{display:none}
.fr-spenta{opacity:.35;pointer-events:none}
@media (display-mode:standalone) and (max-width:900px){
  .barra-mob .mob-frecce{display:inline-flex;flex:none;margin-right:-8px}
  .barra-mob .mob-ind{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;color:#fff;flex:none}
  .mob-ind svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
}
@media (display-mode:standalone) and (min-width:901px){
  .aside-frecce{display:flex;align-items:center;gap:6px;margin:0 0 14px}
  .aside-frecce a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:34px;border-radius:9px;background:rgba(255,255,255,.08);color:#fff}
  .aside-frecce a:hover{background:rgba(255,255,255,.16);text-decoration:none}
  .aside-frecce svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
  .aside-frecce .tasti{margin-left:auto;font-size:12px;color:#9AA2C8}
}

/* 11.77 — «Richieste»: una pagina sola per rispondere a chi scrive (pages/messaggi.php); le nuvolette .fm sono quelle dei
   fornitori (11.57). 11.86 (grafica bozze/richieste-flusso.html): DUE VISTE invece di tre colonne. L'elenco a schede,
   tre per riga (.rk-g, .rk); una richiesta a tutto schermo (.rich-top, .rich-una). I tre pulsanti hanno tre colori fissi,
   uno per gesto, in ogni scheda: Rispondi blu (btn primary), Chiudi grigio scuro (.rich-chiudi), Passala a… ambra
   (.rich-pass). Ogni gesto lascia nello scambio una riga col colore del suo pulsante (.rich-ev). */
/* 12.74: la fascia dell'obiettivo di risposta in cima a «Richieste» (verde, gialla, rossa come i riquadri d'avviso) */
.rich-ob{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border:1px solid;border-radius:12px;padding:12px 16px;margin:0 0 14px}
.rich-ob .rob-ic{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;flex:0 0 auto;font-size:17px}
.rich-ob .rob-tx{flex:1 1 260px;min-width:0}
.rich-ob .rob-gr{display:block;font:700 17px/1.3 Montserrat,sans-serif}
.rich-ob .rob-p{display:block;font-size:13.5px;color:var(--ink);opacity:.85;margin-top:2px}
.rich-ob .btn{flex:0 0 auto}
.rich-ob .rob-tel{display:none}
.rob-barra{display:block;height:7px;border-radius:5px;background:rgba(10,13,49,.1);margin-top:6px;overflow:hidden;max-width:360px}
.rob-barra i{display:block;height:100%;border-radius:5px}
.rob-ok{background:var(--ok-soft);border-color:#B5DFC8}.rob-ok .rob-ic,.rob-ok .rob-barra i{background:var(--ok)}.rob-ok .rob-gr{color:var(--ok)}
.rob-at{background:var(--warn-soft);border-color:#EBCF94}.rob-at .rob-ic,.rob-at .rob-barra i{background:var(--warn)}.rob-at .rob-gr{color:var(--warn)}
.rob-ko{background:var(--danger-soft);border-color:#F0C0B9}.rob-ko .rob-ic{background:var(--danger)}.rob-ko .rob-gr{color:var(--danger)}
@media (max-width:700px){
  .rich-ob{padding:10px 12px;gap:10px}
  .rich-ob .rob-gr{font-size:15.5px}
  .rich-ob .rob-pc{display:none}.rich-ob .rob-tel{display:inline}
  .rich-ob .btn{width:100%;text-align:center}
}
#rich-cont .el-cont{grid-template-columns:repeat(3,minmax(0,1fr))}
.rit-in{color:var(--danger);font-weight:600}
.rich-sez{font-size:12.5px;font-weight:700;color:#8A5A00;text-transform:uppercase;letter-spacing:.04em;margin:6px 6px 6px}
.rich-sez.alt{color:var(--muted);margin-top:16px}
.rk-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 6px}
.rk{position:relative;display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--ombra);min-width:0}
.rk:hover{border-color:var(--area)}
.rk>span{display:block;min-width:0}
.rk-t{display:flex!important;align-items:center;gap:8px}
.rk-n{margin-right:auto;min-width:0;color:inherit;text-decoration:none;font-size:17px;overflow-wrap:anywhere}
.rk-n::after{content:"";position:absolute;inset:0;border-radius:14px}   /* tutta la scheda apre la richiesta */
.rk-t .pill{flex:0 0 auto}
.rk-stella,.rk-link{position:relative;z-index:1}                       /* la stellina e il progetto stanno sopra il collegamento */
.rk-stella{margin:0}
.rk-a{display:flex!important;flex-wrap:wrap;gap:6px;align-items:center}
.rk-f{display:flex!important;flex-wrap:wrap;gap:5px}.rk-f .pill{font-size:12px;padding:2px 9px}
.rk-m{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.rk-s{border-top:1px solid var(--line);padding-top:6px;margin-top:auto}
.rk-link{color:var(--area);text-decoration:underline;text-underline-offset:2px}
.rich-top{display:flex;align-items:center;gap:14px;margin:0 0 14px;font-weight:600}
.rich-top span{margin-left:auto}
.rich-una{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(260px,1fr);gap:18px;align-items:start}
.rich-una>.panel{margin:0}
.rich-una .fm .fm-m{max-width:75%}
.rich-ct{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rich-ct h2{margin:0}
.rich-prio-f{margin-left:auto}
.btn.rich-stella{background:#fff;border-color:#E6C46A;color:#8A5A00}.btn.rich-stella.piena{background:#FFF4D6}
.rich-fatto{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;background:var(--ok-soft);color:#0B5F36;border-radius:10px;padding:10px 12px;margin:0 0 12px;font-size:15px}
.rich-fatto b{color:#0B5F36}.rich-fatto a,.rich-fatto summary,.rich-fatto .lnk{color:#0B5F36;font-weight:600}
.rich-fatto>span:first-child{flex:1 1 260px}
.rich-come{display:block;color:#2C6E4B}
.rich-fatto .lnk{appearance:none;border:0;background:none;padding:0;font:inherit;text-decoration:underline;cursor:pointer}
.rich-nota-d>summary{cursor:pointer;text-decoration:underline;list-style:none}
.rich-nota-d>summary::-webkit-details-marker{display:none}
.rich-nota-d[open]{flex:1 1 100%}
.rich-nota-f{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.rich-nota-f input{flex:1 1 240px;min-width:0;font:inherit;font-size:16px;border:1px solid #A9D8BD;border-radius:8px;padding:7px 10px;background:#fff}
.rich-sc{margin:14px 0}
.rich-nota{text-align:center;margin:10px 0}
.rich-nota.int{background:#FFF8E6;border-radius:8px;padding:6px 10px}
.rich-solo{white-space:nowrap;font-style:italic}
.rich-ev{display:flex;align-items:baseline;gap:8px;justify-content:center;font-size:13.5px;margin:10px 0;color:var(--ink);text-align:center}
.rich-ev i{display:inline-block;width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.rich-ev.pass i{background:#E3B964}.rich-ev.pass{color:#7a4e0c}
.rich-ev.chiusa i{background:#4A5270}.rich-ev.chiusa{color:#4A5270;font-weight:600}
.rich-ev.prio i{background:#C98A00}.rich-ev.prio{color:#8A5A00}
.rich-ev-n{display:block;font-weight:400;font-size:13px;margin-top:2px}
.rich-risp textarea{width:100%;box-sizing:border-box;font:inherit;font-size:16px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0}
.rich-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;margin-top:8px}
.rich-bar>form{margin:0}
.rich-pass-d{margin-right:auto}
.rich-pass-d>summary{list-style:none;cursor:pointer}
.rich-pass-d>summary::-webkit-details-marker{display:none}
.rich-pass-d[open]{flex:1 1 100%;order:9;margin-right:0}
.btn.rich-pass{background:var(--warn-soft);border-color:#E3B964;color:#7a4e0c}
.btn.rich-chiudi{background:#4A5270;border-color:#4A5270;color:#fff}
.btn.rich-chiudi:hover{background:#3A4160;border-color:#3A4160}
.rich-chi-f{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--soft);border-radius:10px;padding:12px;margin-top:8px}
.rich-chi-f label{flex:1 1 100%;margin:0}
.rich-chi-f select{flex:1 1 220px;min-width:0;font:inherit;font-size:16px;border:1.5px solid var(--area);border-radius:8px;padding:8px 10px;background:#fff}
.rich-chi-f>.muted{flex:1 1 100%}
.rich-chi-f .ss{flex:1 1 100%}
.rich-chi-f .ss-campo{box-sizing:border-box;font-size:16px;border:1.5px solid var(--area);border-radius:8px;padding:8px 10px;background:#fff}
.rich-az{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}
.rich-poi{margin:10px 0 0}
.rich-d>summary{list-style:none;cursor:default}
.rich-d>summary::-webkit-details-marker{display:none}
.rich-d>summary h3{margin:0;display:inline}
.rich-dl{margin:10px 0 0}
.rich-dl>div{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}
.rich-dl dt{color:var(--muted);flex:0 0 auto}
.rich-dl dd{margin:0;text-align:right;min-width:0;overflow-wrap:anywhere}
.rich-dl dd .pill{margin:2px 0 0 4px;white-space:normal;text-align:left;max-width:100%}
.rich-pag{margin-top:14px}
@media (max-width:1100px){.rk-g{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){
  .rich-una{grid-template-columns:1fr}
  .rich-una .fm .fm-m{max-width:88%}
  .rich-d>summary{cursor:pointer}
  .rich-d>summary h3::after{content:" \25BE";color:var(--muted)}
}
@media (max-width:600px){
  .rk-g{grid-template-columns:1fr}
  #rich-cont .el-cont{gap:8px}
  #rich-cont a.stat.el-st{padding:10px 12px}
  #rich-cont a.stat.el-st .v{font-size:22px}
  #rich-cont a.stat.el-st .l{font-size:12px;line-height:1.25}
  .rit-in{display:block}
  .rich-top{gap:10px;font-size:15px}
  .rich-prio-f{margin-left:0}
  .rich-bar .btn{min-height:44px}
}

/* 11.78 — il workshop nella pagina della persona: «Torna alla sua pagina del congresso» sotto la lettera */
.ws-torna{margin:14px 0 0}

/* 11.79 — «Ha bisogno di noi?» nelle pagine personali (pages/_bisogno.php; grafica bozze/richieste-tempi.html, parte D).
   Cinque argomenti da scegliere (pulsanti di opzione veri: funziona senza JavaScript), la risposta più probabile
   che compare con la scelta, la casella. Lo scambio usa le nuvolette .fm dei fornitori (11.57) */
.bis .bis-scegli{margin:0 0 10px}
.bis-args{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;position:relative;margin:0 0 12px}
/* il pulsante di opzione resta nella pagina (tastiera, lettori di schermo) ma non occupa una casella della griglia:
   le regole generali dei campi (.form input) gli darebbero margini e larghezza */
.bis .bis-args input.bis-rd{position:absolute!important;opacity:0;width:1px!important;height:1px;margin:0!important;padding:0;border:0;pointer-events:none}
.bis .bis-args label{display:flex;flex-direction:column;gap:2px;margin:0!important;padding:12px 14px;border:2px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;min-width:0}
.bis-args label b{font-family:Montserrat,sans-serif;font-size:15px;line-height:1.25}
.bis-args label span{color:var(--muted);font-size:13.5px;line-height:1.35}
.bis-args label:hover{border-color:#C5CBE0}
.bis-rd:checked + label{border-color:var(--blu);box-shadow:0 0 0 1px var(--blu)}
.bis-rd:focus-visible + label{outline:3px solid #B9BEF5;outline-offset:2px}
.bis-rd:disabled + label{cursor:default;opacity:.7}
.bis-h{display:none;grid-column:1/-1;margin:2px 0 0;background:var(--soft);border-left:4px solid var(--blu);border-radius:10px;padding:12px 14px}
.bis-h[hidden]{display:none!important}
#bis-a-viaggio:checked ~ .bis-h-viaggio,#bis-a-documenti:checked ~ .bis-h-documenti,#bis-a-compenso:checked ~ .bis-h-compenso,
#bis-a-programma:checked ~ .bis-h-programma,#bis-a-altro:checked ~ .bis-h-altro{display:block}
.bis .bis-poi{margin:8px 0 0}
.bis-r{border-bottom:1px solid var(--line);padding:0 0 14px;margin:0 0 14px}
.bis-arg{margin:0 0 8px;font-weight:600}
.bis-altra{margin:0}
.rel-bis{margin:22px 0 0}
.bis-altra>summary,.rel-bis>summary{list-style:none;cursor:pointer;display:inline-flex}
.bis-altra>summary::-webkit-details-marker,.rel-bis>summary::-webkit-details-marker{display:none}
.bis-altra[open]>summary,.rel-bis[open]>summary{margin-bottom:12px}
.bis-chiuse{margin:14px 0 0}
.bis-chiuse>summary{cursor:pointer;color:var(--muted)}
.bis-chiuse .bis-r{margin-top:10px}
.bis-chiuse .bis-r:last-child,.bis>.bis-r:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.bis-sotto{border-top:1px solid var(--line);margin:16px 0 0;padding:14px 0 0}
.bis-sotto>p{margin:0 0 8px}
@media (max-width:600px){
  .bis-args{grid-template-columns:1fr;gap:8px}
  .bis-args label{padding:11px 13px}
  .bis .btn.primary{width:100%}
}
/* «Richieste»: l'argomento sulla riga e «Scrivile» nella scheda della persona */
.rich-arg{font-weight:600}
.scrivile>summary{list-style:none;cursor:pointer;display:inline-flex}
.scrivile>summary::-webkit-details-marker{display:none}
.scrivile[open]>summary{margin-bottom:8px}
.scrivile textarea{width:100%;box-sizing:border-box;font:inherit;font-size:16px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 8px}

/* 11.80 — Faculty: «Seleziona tutti» e «Deseleziona tutti» sopra l'elenco (gli stessi due pulsanti degli
   elenchi, .el-sel), e nella barra delle spunte «Segna “Ha confermato”», staccato dagli invii con una riga:
   quelli scrivono alle persone, questo no. [hidden] va detto: .el-sel e .bs-stato sono flex. */
.fac-tutti{padding:0 0 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.fac-tutti[hidden],.barra-sel .bs-stato[hidden]{display:none}
.barra-sel .bs-stato{display:flex;gap:8px;align-items:center;padding-right:14px;margin-right:6px;border-right:1px solid var(--line)}
/* al telefono la barra ha un pulsante in più: l'ultima riga dell'elenco deve restare sopra (era 250px) */
@media (max-width:700px){ .barra-sel .bs-stato{flex:1 1 100%;border:0;padding:0;margin:0} .barra-sel .bs-stato .btn{flex:1 1 100%}
  body.bs-aperta main{padding-bottom:350px} }

/* 11.81 — «Utilizzo». Di nuovo c'è solo la griglia «Quando» (giorni per ore): il resto sono i blocchi di sempre. */
.uz-ore{display:grid;grid-template-columns:34px repeat(15,minmax(0,1fr));gap:3px;align-items:center}
.uz-ore i{display:block;height:26px;border-radius:5px;outline:1px solid rgba(10,13,49,.06);outline-offset:-1px}
.uz-ore .uz-h{font-size:11px;color:#6B7390;text-align:center}
.uz-ore .uz-g{font-size:12px;color:#6B7390}
.uz-testa-d{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.uz-persona:hover{border-color:var(--line)}
.uz-persona.tappe-rosso:hover{border-color:#EBB4AE}
@media(max-width:600px){
  .uz-ore{grid-template-columns:28px repeat(15,minmax(0,1fr));gap:2px}
  .uz-ore i{height:20px;border-radius:3px}
  .uz-ore .uz-h{font-size:9px}
  .el-cont.uz-cont{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vista-sel.uz-ling{display:flex;flex-wrap:wrap;border-radius:16px}
  .vista-sel.uz-ling a{white-space:nowrap;flex:1 1 auto;text-align:center}
}

/* 11.82 — la foto scelta si vede subito, con «Foto pronta» (assets/comportamenti.js, data-foto; bozze/foto-leggere.html) */
.foto-ok{color:var(--ok)}
.foto-cambia{display:block;font-weight:400;font-size:var(--fs-piccolo);text-decoration:underline;color:var(--ink,inherit)}
.foto-cambia:empty{display:none}
.forn-foto-su.foto-scelta{position:relative}
.forn-foto-su.foto-scelta input[type=file],input[type=file].foto-nascosto{position:absolute;left:0;top:0;width:1px;min-width:0;max-width:1px;height:1px;padding:0;margin:0;border:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;pointer-events:none}
.forn-foto-su.foto-scelta:focus-within{outline:2px solid var(--blu);outline-offset:2px}
.forn-foto-su.foto-box,.form label .forn-foto-su.foto-box{display:flex;flex-direction:row;margin-top:6px}
.forn-foto-su.foto-box[hidden]{display:none}
.forn-foto-su.foto-box b{font-size:inherit}
.foto-togli{background:none;border:0;padding:2px 6px;min-height:0;font:inherit;font-size:13px;line-height:1.3;color:inherit;text-decoration:underline;cursor:pointer}
.forn-galleria.foto-nuove{margin-bottom:10px}
/* 11.82 — annunci: la figura è il titolo della riga (bozze/annunci-ruolo-ordina.html, variante A) */
.ann-fig{font-size:18px}
/* ---------- 11.83 — la «Nota nostra» su viaggi e pernottamenti, e il foglio di «Stampa» (bozze/pernotti-viaggi-note.html) ---------- */
.nn-sua{margin-top:4px}
.nn-nostra{margin-top:4px;padding:3px 8px;border-left:3px solid var(--area,#FB8C3C);background:#FFF6EC;border-radius:0 6px 6px 0;color:#1B2240}
.form label.nn-campo{background:#FFF6EC;border:1px solid #F3D9B8;border-radius:10px;padding:10px 12px;margin-top:10px}
.form label.nn-campo>span{display:block;color:inherit}
.form label.nn-campo>span b{color:#1B2240}
.form label.nn-campo textarea{margin-top:6px;background:#fff}
table.pern td textarea.cel.pn-nota{width:100%;min-width:150px;min-height:44px;max-height:160px;field-sizing:content;resize:vertical;font:inherit;font-size:13px;line-height:1.35;background:#FFF6EC}
table.pern td textarea.cel.pn-nota:focus{background:#fff}
.tp-elenco td .tp-manca{color:var(--warn,#a15c00);font-weight:700}
/* il foglio: a schermo non c'è, in stampa c'è solo lui */
.foglio{display:none}
@media print{
  .pag-tuttiviaggi main>:not(.foglio),.pag-tuttipernotti main>:not(.foglio){display:none!important}
  .pag-tuttiviaggi .foglio,.pag-tuttipernotti .foglio{display:block;font:12.5px/1.45 -apple-system,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#111;background:#fff}
  .pag-tuttiviaggi,.pag-tuttipernotti{background:#fff!important}
  .pag-tuttiviaggi::before,.pag-tuttipernotti::before{display:none!important}
  .fo-capo{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;border-bottom:3px solid #111;padding-bottom:8px;margin-bottom:14px}
  .fo-tit{font-size:20px;font-weight:700}
  .fo-marchio{font-weight:800;font-size:18px}
  .fo-prog{font-size:17px;font-weight:700;margin:20px 0 2px;padding-top:8px;border-top:2px solid #111}
  .fo-prog span{font-weight:400;font-size:13px}
  .fo-capo+.fo-prog{border-top:0;padding-top:0;margin-top:0}
  .fo-sez{font-weight:700;font-size:15px;margin-top:14px;break-after:avoid}
  .fo-sez span{font-weight:400}
  .fo-tab{width:100%;border-collapse:collapse;margin:6px 0 4px;display:table!important}
  .fo-tab thead{display:table-header-group!important}.fo-tab tbody{display:table-row-group!important}
  .fo-tab tr{display:table-row!important;break-inside:avoid}
  .fo-tab th{display:table-cell!important;text-align:left;border-bottom:2px solid #111;padding:5px 6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;background:none;color:#111}
  .fo-tab td{display:table-cell!important;border-bottom:1px solid #ccc;padding:6px;vertical-align:top;min-width:0!important;background:none}
  .fo-viaggi td:nth-child(1){width:20%}.fo-viaggi td:nth-child(2){width:8%}.fo-viaggi td:nth-child(3){width:30%}.fo-viaggi td:nth-child(4){width:13%}
  .fo-notti td:nth-child(1){width:20%}.fo-notti td:nth-child(2),.fo-notti td:nth-child(3){width:10%;white-space:nowrap}.fo-notti td:nth-child(4){width:6%}.fo-notti td:nth-child(5){width:13%}.fo-notti td:nth-child(6){width:17%}
  .fo-conto{font-size:12px;margin-bottom:14px}
  .fo-piede{margin-top:18px;font-size:10.5px;color:#555}
}

/* 11.84 — Board: «Una nota per lei» e le carte d'imbarco (grafica bozze/nota-biglietto.html, variante B).
   Il pulsante del biglietto dice «manda la conferma» quando c'è la spunta «le carte d'imbarco arrivano dopo»:
   due scritte nello stesso pulsante, e la spunta sceglie quale si vede. Senza :has() si vede quella di sempre. */
#bv-bigl .bv-si{display:none}
#bv-bigl:has(input[name=carte_dopo]:checked) .bv-si{display:inline}
#bv-bigl:has(input[name=carte_dopo]:checked) .bv-no{display:none}
.form label.bv-nota{margin-top:14px}
#bv-nota-loro{border-bottom:1px solid var(--line);margin-bottom:10px}

/* 11.85 — Avvisi, Richieste, Chat. Il numero grigio dell'icona Avvisi («c'è qualcosa, ma non corre»): gli altri
   restano rossi. I blocchi chiusi della pagina Avvisi («Documenti arrivati», «Solo da sapere»). */
.nav-icone .n.quieto,.mob-ico .n.quieto{background:#8088A8}
.pme-blocco>summary{cursor:pointer;padding:12px;border-radius:10px}
.pme-blocco>summary:hover{background:var(--soft)}
.pme-blocco[open]>summary{border-bottom:1px solid var(--soft);border-radius:10px 10px 0 0}
.pme-blocco+.pme-blocco{border-top:1px solid var(--soft)}
.pme-altri .pme-p{padding:0 8px 8px}

/* 11.87 — Richieste: «Inserisci…», «Allega un file», «letta», «conviene telefonare», le risposte pronte
   (pages/messaggi.php; grafica bozze/richieste-allegati-pronte.html). I dati sono le pastiglie delle Lettere libere (.ll-dato) */
.rich-strum{position:relative;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:0 0 8px}
.rich-strum .dx{margin-left:auto}
.rich-ins>summary{list-style:none;cursor:pointer}
.rich-ins>summary::-webkit-details-marker{display:none}
.rich-strum .ins-pan{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;max-height:60vh;overflow:auto}
.ins-pan{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px;background:#fff;border:1.5px solid var(--area);border-radius:12px;padding:14px;margin:8px 0 10px;box-shadow:0 8px 24px rgba(10,13,49,.12)}
.ins-g{min-width:0}
.ins-g h4{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 8px}
.ins-g .small{margin:6px 0 0}
.ins-cerca{grid-column:1/-1;width:100%;box-sizing:border-box;font:inherit;font-size:16px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.ins-pronta{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:0 0 6px;cursor:pointer}
.ins-pronta:hover{border-color:var(--area)}
.ins-pronta b{display:block;font-size:14.5px}
.ins-pronta span{display:block;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ins-chips{display:flex;flex-wrap:wrap;gap:6px}
.ins-chips [hidden],.ins-g [hidden]{display:none!important}
.ins-vai{font:inherit;font-size:var(--fs-piccolo);font-weight:600;border:1px solid #B9BEF5;background:var(--blu-soft);color:var(--area);border-radius:99px;padding:5px 11px;cursor:pointer}
.ins-ges{grid-column:1/-1;font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:8px;margin:0}
.ins-ges a{font-weight:600}
.rich-allega{margin:0}
.rich-allega.js input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}
.rich-allega.js span{border:1px solid var(--line);background:#fff;border-radius:8px;padding:5px 11px;cursor:pointer}
.rich-allega.js:focus-within span{outline:3px solid #B9BEF5;outline-offset:2px}
.rich-all{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.rich-all[hidden]{display:none}
.rich-file{display:inline-flex;align-items:center;gap:6px;background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:13.5px;max-width:100%;overflow-wrap:anywhere}
.rich-file.troppo{border-color:var(--danger);color:var(--danger)}
.rich-file .peso{color:var(--muted)}
.rich-file .x{border:0;background:none;color:var(--muted);cursor:pointer;font-size:15px;padding:0 2px}
.rich-troppi{color:var(--danger);font-weight:600;align-self:center}
.fm-m .fm-file{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}
.fm-m .fm-file a{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:5px 9px;font-size:13.5px;font-weight:600;text-decoration:none;color:var(--ink);max-width:100%;overflow-wrap:anywhere}
.fm-m .fm-vai{display:inline-block;margin:8px 0 2px;background:var(--area);color:#fff;border-radius:8px;padding:7px 12px;font-weight:600;font-size:14px;text-decoration:none}
.fm-m .fm-vai.int{background:var(--blu-soft);color:var(--area);border:1px solid #B9BEF5;padding:4px 10px;font-size:13px}
.rich-letta{display:flex;justify-content:flex-end;font-size:13px;margin:-2px 0 8px;color:var(--ok);font-weight:600}
.rich-letta.no{color:var(--muted);font-weight:400}
.rich-tel{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;background:var(--warn-soft);color:#7a4e0c;border-radius:10px;padding:10px 12px;margin:0 0 12px;font-size:15px}
.rich-tel>span{flex:1 1 260px}.rich-tel b{color:#7a4e0c}
.rich-ev.prom i{background:var(--blu)}.rich-ev.prom{color:var(--area)}
.rich-salva{margin:8px 0 0}
.rich-salva .lnk{appearance:none;border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--area);text-decoration:underline;cursor:pointer}
.rp-l{list-style:none;margin:10px 0 0;padding:0}
.rp-l li{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.rp-l li:first-child{border-top:0}
.rp-l .rp-t{flex:1;min-width:0}.rp-l .rp-t b{display:block}
.rp-l .rp-t span{display:block;color:var(--muted);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-l .rp-n{font-size:13px;color:var(--muted);white-space:nowrap}
.rp-nuova{margin-left:auto}
.rp-modifica h2{margin-top:0}
.rp-ins{margin:0 0 10px}
.rp-ins .ins-pan{grid-template-columns:1fr 1fr}
.rp-togli{margin-right:auto}
.bis-prom{background:var(--blu-soft);border-left:4px solid var(--blu);border-radius:10px;padding:10px 12px;margin:0 0 10px;font-size:15px}
@media (max-width:900px){ .ins-pan,.rp-ins .ins-pan{grid-template-columns:1fr} }
@media (max-width:600px){
  .rich-strum .dx{flex:1 1 100%;margin-left:0}
  .rich-strum .ins-pan{max-height:70vh}
  .ll-dato,.ins-vai{padding:8px 12px}
  .rp-l li{flex-wrap:wrap}
  .rp-l .rp-n{order:3}
  .rich-tel a.btn{min-height:44px}
}
.fm-m .fm-vai[hidden]{display:none}   /* data-se-esiste: il riquadro in questa pagina non c'è (hidden perde contro display) */
@media (max-width:600px){ .rich-strum .ins-pan{position:static;max-height:none;box-shadow:none} }   /* al telefono il pannello si apre nella pagina: sopra la casella si tagliava */

/* 11.89 — il messaggio dopo un'azione porta in fondo il codice del clic (flash_html, layout.php) e, se serve, un
   pulsante («Annulla: rimettila in attesa»). Il codice è piccolo e grigio: serve solo a chi segnala un problema. */
.note[data-msg]{display:flex;gap:10px 12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.note .msg-coda{display:flex;gap:10px;align-items:center;margin-left:auto;flex-wrap:wrap}
.note .msg-coda + .msg-chiudi{margin-left:0}
.note .msg-az{margin:0}
.msg-cod{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:var(--fs-piccolo);color:var(--muted);background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:6px;padding:1px 7px;white-space:nowrap;text-decoration:none}
a.msg-cod:hover{color:var(--ink);border-color:var(--muted)}
@media (max-width:600px){ .note .msg-coda{width:100%;justify-content:space-between} .note .msg-az{flex:1 1 auto} .note .msg-az .btn{width:100%} }

/* 11.89 — la richiesta: «Cosa è successo» sotto lo scambio (una riga chiusa «solo se serve»), con i colori dello
   scambio (verde fatto, ambra in attesa, rosso non partito, grigio chiusa); e il rosso di un avviso non partito */
.rich-avv-no{color:var(--danger);font-weight:600}
.rich-cs{margin-top:16px;border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;background:var(--white)}
.rich-cs > summary{font-weight:600;cursor:pointer}
.rich-tl{list-style:none;margin:10px 0 2px;padding:0}
.rich-tl li{border-left:3px solid var(--line);padding:4px 0 7px 12px;font-size:var(--fs-secondario)}
.rich-tl li.ok{border-color:var(--ok)}
.rich-tl li.am{border-color:var(--warn)}
.rich-tl li.no{border-color:var(--danger)}
.rich-tl li.grigio{border-color:var(--muted)}
.rich-tl .posta-rimetti,.rich-dl .posta-rimetti{margin:6px 0 0}
@media (max-width:600px){ .rich-tl .posta-rimetti .btn,.rich-dl .posta-rimetti .btn{width:100%;min-height:44px} }
/* 11.89 — il Registro delle operazioni cercato per codice: in grigio i clic venuti dopo sulle stesse email */
.au-clic{margin:0 0 10px}
.au-t tr.au-dopo td{color:var(--muted)}
@media (max-width:600px){
  .note.msg-attaccato:has(.msg-coda){padding-right:56px}
  .note.msg-attaccato:has(.msg-coda) .msg-chiudi{position:absolute;top:10px;right:10px;margin:0}
}

/* 11.90: «Collega alla sua pagina» nelle Richieste (dentro «Chi è») e, nella pagina pubblica «Scriva alla segreteria»,
   il consiglio di scrivere dalla propria pagina con il riquadro della Faculty (pf_email) che si apre lì */
.rich-coll{margin-top:8px;background:var(--soft,#F3F5FA);border-radius:10px;padding:8px 10px}
.rich-coll>summary{list-style:none;cursor:pointer;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rich-coll>summary::-webkit-details-marker{display:none}
.rich-coll[open]>summary .btn{display:none}
.rich-coll-pan{margin-top:6px}
.rich-coll-pan p{margin:2px 0 6px}
.rich-coll{text-align:left}
.rich-cand{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;margin:6px 0;display:flex;flex-direction:column;gap:8px;align-items:stretch}
.rich-cand .btn{white-space:nowrap;justify-content:center;align-self:flex-start}
.rich-cand>div{min-width:0;font-size:var(--fs-piccolo)}
.rich-cand .pill{margin-top:3px}
.rich-coll-fatto{margin-top:4px}
.rich-coll-fatto .lnk{appearance:none;border:0;background:none;padding:0;font:inherit;color:var(--area);text-decoration:underline;cursor:pointer}
.pf-consiglio{background:#EEF2FF;border-radius:14px;padding:14px 16px;margin:0 0 16px}
.pf-consiglio-d{margin-top:10px}
.pf-consiglio-d>summary{list-style:none;cursor:pointer;display:inline-flex}
.pf-consiglio-d>summary::-webkit-details-marker{display:none}
.pf-consiglio-d[open]>summary{display:none}
.pf-consiglio .pf-rientro{margin:0;border-top:0;background:#fff;border-radius:12px;padding:12px 14px}
@media (max-width:600px){
  .rich-cand .btn{align-self:stretch;min-height:44px}
  .pf-consiglio .pf-rientro .riga{flex:0 0 auto}
  .pf-consiglio-d>summary{display:flex;width:100%;justify-content:center;min-height:46px;align-items:center}
}

/* 11.91: Richieste, il numero conta solo le novità (bozze/richieste-solo-novita.html, variante A). La fascia della
   dashboard è in blu: il rosso resta per il ritardo e per «Da approvare». La scheda nuova ha il bordo blu a sinistra */
.tappe-barra.blu{background:#EEF2FF;color:var(--blu);border:1px solid #C9D3FF}
.tappe-barra.blu .rich-dash-sotto{font-weight:400}
.rk.rk-nuova{border-color:#9FB0FF;box-shadow:inset 4px 0 0 var(--blu),var(--ombra)}
.pill.nuova{background:var(--blu);color:#fff;font-weight:700;margin-right:6px}
.rich-sez.nuove{color:var(--blu)}
.rich-nuove-f{margin:0 0 10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.rich-chip-n{display:inline-block;border:1px solid #9FB0FF;color:var(--blu);background:#fff;border-radius:20px;padding:4px 12px;font-size:13px;font-weight:600}
.rich-chip-n.on{background:var(--blu);color:#fff;border-color:var(--blu)}
.rich-chip-n:hover{text-decoration:none}

/* 11.92: in «Ruoli e permessi» la frase fissa del budget resta ferma a sinistra mentre la tabella scorre */
table.rp tr.rp-budget td{padding:6px 0}
table.rp tr.rp-budget .note{position:sticky;left:0;margin:0;max-width:min(78ch, calc(100vw - 80px));white-space:normal}

/* 11.93: Utenti → Modifica, l'email di fuori su un ruolo di izeos: la riga sotto «Email» diventa rossa */
.form .hint.err{color:var(--danger);font-weight:600}
.form input.campo-err:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]){border:1.5px solid var(--danger);background:#FFF8F8}

/* 11.94: Grant, «In copia» nella lettera all'ente. Le pastiglie: azzurre = dalla scheda dell'ente, gialle = solo
   per questa richiesta; la ✕ toglie solo da questa richiesta. Al telefono via la scritta «· scheda», resta la legenda. */
.gr-cc{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.gr-cc-ind{display:inline-flex;align-items:center;gap:4px;max-width:100%;background:#EEF2FF;border:1px solid #C9D3F5;border-radius:16px;padding:2px 3px 2px 10px}
.gr-cc-mail{min-width:0;overflow-wrap:break-word;line-height:1.35}
.gr-cc-ind.solo{background:#FFF7E0;border-color:#F0D98A}
.gr-cc-ind .da{color:var(--muted);font-size:11.5px;white-space:nowrap}
.gr-cc-x{display:inline;margin:0}
.gr-cc-x button{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;min-height:0;padding:0;border:0;border-radius:50%;background:#fff;color:var(--muted);font-weight:700;font-size:12px;cursor:pointer}
.gr-cc-x button:hover,.gr-cc-x button:focus-visible{background:var(--danger,#c62828);color:#fff}
.gr-cc-ind:not(:has(.gr-cc-x)){padding-right:10px}
.gr-cc-agg{flex:1 1 100%}
.gr-cc-agg summary{display:inline-block;color:var(--blu);font-weight:600;cursor:pointer;list-style:none}
.gr-cc-agg summary::-webkit-details-marker{display:none}
.gr-cc-form{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 2px}
.gr-cc-form input{flex:1 1 180px;min-width:0;margin:0}
.gr-cc-nota{flex:1 1 100%;margin-top:2px}
.gr-cc-leg{display:none}
.gr-cc-dopo{margin:0 0 10px}
@media (max-width:700px){
  .gr-cc-ind .da{display:none}
  .gr-cc-leg{display:inline}
  .gr-cc-form .btn{flex:1 1 100%}
}
/* 11.94: «In copia: …» sotto il destinatario (popup «Stai per inviare», «Da approvare», Registro email) */
.posta-cc{margin:-4px 0 8px;color:var(--muted);overflow-wrap:anywhere}
.mr-cc,.posta-cc-r{overflow-wrap:anywhere}
.ente-cc div{overflow-wrap:anywhere}
.form textarea.campo-err{border:1.5px solid var(--danger);background:#FFF8F8}
/* 11.95: «dov'è adesso» un relatore — la fascia sotto la casella del Programma (assets/js/dove.js) */
#prog-dove[hidden]{display:none}
.dove{background:#fff;border:1px solid #C9D3FF;border-left:5px solid var(--blu);border-radius:12px;padding:12px 14px;margin:0 0 14px}
.dove.dove-adesso{border-color:#A9D8BD;border-left-color:var(--ok)}
.dove.dove-doppio{border-color:#F0C98A;border-left-color:var(--warn)}
.dove-testa{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.dove-chi{font-weight:700;font-size:16px;color:var(--blu)}
a.dove-chi{text-decoration:underline;text-underline-offset:3px}
.dove-ruolo{font-size:var(--fs-piccolo,12.5px);color:var(--muted)}
.dove-riga{display:flex;gap:10px;align-items:flex-start;margin-top:9px}
.dove-et{flex:0 0 76px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.dove-riga.ora .dove-et{color:var(--ok)}
.dove-doppio .dove-riga.ora .dove-et{color:var(--warn)}
.dove-cosa{flex:1;min-width:0;overflow-wrap:break-word}
.dove-cosa b{font-size:15px}
.dove-m{font-size:13px;color:var(--muted)}
.dove-sala{display:inline-block;color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:99px;padding:2px 9px;margin-right:6px;vertical-align:1px}
.dove-avv{background:var(--warn-soft);color:#7A4E0B;border-radius:8px;padding:6px 10px;font-weight:600;font-size:13.5px;margin-bottom:6px}
.dove-una{padding:4px 0}
.dove-elenco{margin:8px 0 0;padding:0;list-style:none}
.dove-elenco li{display:flex;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:13.5px}
.dove-elenco li .q{flex:0 0 170px;font-weight:600}
.dove-quale{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 14px}
.dove-quale .dove-et{flex:0 0 auto;padding:0 4px 0 0}
.dove-nome{border:1px solid var(--line);background:#fff;border-radius:99px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--blu);cursor:pointer;min-height:36px}
.dove-nome:hover{border-color:var(--blu)}
.vp-m.trovato b{background:#FFF3C4;border-radius:4px;box-shadow:0 0 0 2px #f0c400 inset;padding:0 3px}
@media (max-width:700px){
  .dove-riga{flex-direction:column;gap:2px}
  .dove-et{flex:none;padding:0}
  .dove-elenco li{flex-direction:column;gap:0}
  .dove-elenco li .q{flex:none}
}

/* 11.99 — Candidati: «Cosa porta», «Mostra solo chi ha:», Stampa ed Excel (bozze/candidati-attrezzatura.html, variante A).
   I bottoni sono quelli dello stato della Faculty (.fac-stati .chip); il foglio di «Stampa» è quello della 11.83. */
.cand-ha{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 4px}
.cand-ha .chip{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:99px;border:1px solid var(--line,#DCE0EE);background:var(--card,#fff);color:inherit;text-decoration:none;font-size:13px}
.cand-ha .chip b{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}
.cand-ha .chip:hover{border-color:#060ED0;text-decoration:none}
.cand-ha .chip.attivo{background:#060ED0;border-color:#060ED0;color:#fff}.cand-ha .chip.attivo b{color:#CFD3FF}
.cand-barra{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:12px 0 6px}
.cand-esporta{display:flex;gap:8px;margin-left:auto}
.cand-et{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}
.cand-et .pill{font-size:12px;padding:2px 9px}
.pill.cand-no{background:#F1F2F6;color:#8A90A8;text-decoration:line-through}
td.cand-porta{min-width:190px}
@media (max-width:700px){
  .cand-ha{gap:6px}.cand-ha .chip{padding:7px 12px}
  .cand-esporta{margin-left:0;width:100%}.cand-esporta .btn{flex:1;justify-content:center}
  td.cand-porta{min-width:0}
}
@media print{
  .pag-evforn main>:not(.foglio){display:none!important}
  .pag-evforn .foglio{display:block;font:12.5px/1.45 -apple-system,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#111;background:#fff}
  .pag-evforn{background:#fff!important}.pag-evforn::before{display:none!important}
  .fo-cand td:nth-child(1){width:20%}.fo-cand td:nth-child(2){width:24%}.fo-cand td:nth-child(3){width:38%}.fo-cand td:nth-child(4){width:5%}.fo-cand td:nth-child(5){width:13%}
  /* 12.31: orizzontale lo fa fe_apri(…, largo: true): ogni foglio ha la sua pagina, con il piede */
}

/* ===== 12.00 — la fisarmonica del relatore (pages/_relatore_blocchi.php, relb_fisarmonica) =====
   Ogni riquadro con il titolo a icona diventa una riga chiusa; le righe di un gruppo stanno in una scheda sola. */
.rl-lista{background:#fff;border:1px solid var(--line);border-radius:var(--rl);box-shadow:var(--ombra);overflow:hidden;margin-bottom:18px}
/* una riga può stare dentro un contenitore suo (i documenti: <div id="congresso">): niente «>» diretto. Ogni riga ha
   il filo sopra e sale di un punto: quello della prima finisce sotto il bordo della scheda, che lo taglia */
.rl-lista details.rl-riga{border:0;border-top:1px solid var(--line);border-radius:0;margin:-1px 0 0;padding:0;box-shadow:none;background:none}
details.rl-riga > summary.rl-testa{list-style:none;cursor:pointer;display:block;padding:15px 52px 15px 20px;position:relative}
details.rl-riga > summary.rl-testa::-webkit-details-marker{display:none}
details.rl-riga > summary.rl-testa::after{content:"";position:absolute;right:24px;top:50%;width:9px;height:9px;border-right:2px solid var(--grigio-chiaro);border-bottom:2px solid var(--grigio-chiaro);transform:translateY(-75%) rotate(45deg);transition:transform .2s}
details.rl-riga[open] > summary.rl-testa::after{transform:translateY(-25%) rotate(-135deg)}
details.rl-riga > summary.rl-testa:hover, details.rl-riga[open] > summary.rl-testa{background:#FAFBFE}
details.rl-riga > summary.rl-testa:focus-visible{outline:2px solid var(--blu);outline-offset:-2px}
details.rl-riga > summary h3.tit-ico{margin:0;font-size:17px;gap:6px 12px}
details.rl-riga > summary h3.tit-ico .pill{margin-left:auto}
details.rl-riga .rl-frase{display:block;margin:2px 0 0 52px;font-size:var(--fs-piccolo);color:var(--muted);line-height:1.4}
details.rl-riga > .rl-corpo{padding:8px 20px 22px}
@media (max-width:600px){
  details.rl-riga > summary.rl-testa{padding:14px 40px 14px 14px}
  details.rl-riga > summary.rl-testa::after{right:16px}
  details.rl-riga > summary h3.tit-ico{font-size:16px}
  details.rl-riga > summary h3.tit-ico .pill{margin-left:44px}
  details.rl-riga .rl-frase{margin-left:44px}
  details.rl-riga > .rl-corpo{padding:6px 14px 18px}
}

/* 12.03: «Cambia ruolo» nella scheda faculty, una riga chiusa sotto il ruolo */
.fac-cambia-ruolo{margin-top:6px}
.fac-cambia-ruolo > summary{cursor:pointer;display:inline-block;color:var(--blu)}
.fac-cambia-ruolo .sotto{margin-top:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;max-width:420px}
.fac-cambia-ruolo select{max-width:100%}

/* 12.04 — «Togli dalla faculty», l'avevo messa per errore: cosa se ne va con lei (tf-via) o cosa lo impedisce
   (tf-blocca). Si vede solo con «L'avevo messa per errore» scelto; il pulsante cambia con la scelta. */
.tf .tf-solo-err,.tf .tf-b-err{display:none}
.tf:has(input[name=perche][value=errore]:checked) .tf-solo-err{display:block}
.tf:has(input[name=perche][value=errore]:checked) .tf-b-err{display:inline-flex}
.tf:has(input[name=perche][value=errore]:checked):has(.tf-b-err) .tf-b-rin{display:none}
.tf .tf-b-err[disabled]{opacity:.45;cursor:not-allowed}
.tf-via{border:1.5px solid var(--line,#e3e6f1);border-radius:var(--r,10px);padding:12px 14px;margin:6px 0 12px;background:#fff}
.tf-via h4{margin:0 0 6px;font-size:15px}
.tf-via ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.tf-via li{display:flex;gap:10px;align-items:baseline;background:var(--soft,#f4f5fa);border-radius:8px;padding:7px 10px;font-size:14px}
.tf-via li b{min-width:150px}
.tf-via li.rosso{background:#fdecea;color:#8a1c12}.tf-via li.rosso b{color:#b3261e}
.tf-via .spunta-alb{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;font-weight:600;color:#8a1c12;cursor:pointer}
.tf-via .spunta-alb input{width:18px;height:18px;min-height:0;margin:2px 0 0;padding:0;flex:0 0 auto;appearance:auto;-webkit-appearance:checkbox}
.tf-via .copia{font-size:13px;color:var(--muted,#676c8c);margin:10px 0 0}
.tf-blocca{border:1.5px solid #e6cf8c;background:#fff6dc;color:#5c4100;border-radius:var(--r,10px);padding:12px 14px;margin:6px 0 12px;font-size:14px}
.tf-blocca ul{margin:6px 0 0;padding-left:18px}.tf-blocca p{margin:8px 0 0}.tf-blocca a{font-weight:600}
.tf-via{container-type:inline-size}
@container (max-width:460px){.tf-via li{flex-direction:column;gap:2px}.tf-via li b{min-width:0}}
@media (max-width:600px){.tf-via li{flex-direction:column;gap:2px}.tf-via li b{min-width:0}}

/* 12.05 — Pernottamenti: «Non hanno risposto» (uguale a «Inviti mandati» della Faculty). Le due tabelle (i primi
   dieci e «Vedi tutti») hanno le stesse colonne, così restano allineate. Al telefono ogni nome è una scheda. */
.pn-soll .pn-soll-testa{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 6px}
.pn-soll .pn-soll-testa h3{margin:0;flex:1}
.pn-soll .pn-soll-testa form{margin:0}
.pn-soll .pn-soll-spiega{margin:0 0 10px}
.pn-soll table.pn-soll-tab{width:100%;table-layout:fixed}
.pn-soll table.pn-soll-tab td{vertical-align:middle}
.pn-soll table.pn-soll-tab td:nth-child(1),.pn-soll table.pn-soll-tab th:nth-child(1){width:24%}
.pn-soll table.pn-soll-tab td:nth-child(3),.pn-soll table.pn-soll-tab th:nth-child(3){width:11%}
.pn-soll table.pn-soll-tab td:nth-child(4),.pn-soll table.pn-soll-tab th:nth-child(4){width:22%}
.pn-soll table.pn-soll-tab td:nth-child(5),.pn-soll table.pn-soll-tab th:nth-child(5){width:140px}
.pn-soll .pn-soll-az{white-space:nowrap;text-align:right}
.pn-soll .pn-soll-az form{margin:0;display:inline}
.pn-soll .soll-oggi{font-size:var(--fs-piccolo,13px);color:var(--muted);font-weight:600}
.pn-soll .quando{font-size:var(--fs-piccolo,13px);color:var(--muted)}
.pn-soll .quando b{color:var(--ink);font-weight:600}
.pn-soll .pn-soll-altri{margin-top:8px}
.pn-soll .pn-soll-altri > summary{cursor:pointer;padding:6px 0}
.pn-soll-il{display:inline-block;font-weight:600;color:#7a4e0c;margin-top:3px}
@media (max-width:700px){
  .pn-soll{padding:16px}
  .pn-soll .pn-soll-testa form,.pn-soll .pn-soll-testa .btn{width:100%;text-align:center;justify-content:center;min-height:46px}
  .pn-soll table.pn-soll-tab,.pn-soll table.pn-soll-tab tbody,.pn-soll table.pn-soll-tab tr,.pn-soll table.pn-soll-tab td{display:block;width:auto!important}
  .pn-soll table.pn-soll-tab tr.testa{display:none}
  .pn-soll table.pn-soll-tab tr{border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 10px;background:#fff}
  .pn-soll table.pn-soll-tab td{border:0;padding:3px 0}
  .pn-soll table.pn-soll-tab td[data-et]::before{content:attr(data-et) " ";font-size:var(--fs-micro,12px);font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-right:6px}
  .pn-soll .pn-soll-az{text-align:left;padding-top:8px!important;white-space:normal}
  .pn-soll .pn-soll-az form{display:block}
  .pn-soll .pn-soll-az .btn{width:100%;text-align:center;justify-content:center;min-height:44px}
}
/* 12.06: la regola delle notti del board, nella riga Pernottamento di «Cosa trova nella sua pagina» (grafica
   proposta-board/b1). Il numero e la frase «Il componente legge» seguono la scelta con :has(), senza JavaScript:
   i campi nascosti restano nel modulo e si salvano, come nella regola dei congressi (12.01). */
.ct-regola{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;margin:10px 0 2px;background:#fff;font-weight:400}
.ct-regola .pn-tipi{margin:0 0 10px}
.ct-regola .pn-seg{display:inline-flex}
.ct-regola:not(:has(input[name=bv_regola][value=fisse]:checked)) .bvr-fisse{display:none}
.ct-regola .bvr-n{display:none}
.ct-regola:has(input[name=bv_notti][value="1"]:checked) .bvr-n[data-n="1"],.ct-regola:has(input[name=bv_notti][value="2"]:checked) .bvr-n[data-n="2"],.ct-regola:has(input[name=bv_notti][value="3"]:checked) .bvr-n[data-n="3"]{display:block}
.ct-regola .bvr-scoperta{margin-top:8px}
.bv-alb-riga .pill,.bv-notti-riga .pill{white-space:normal}
.ct-r:has(.ct-regola){align-items:flex-start}
@media (max-width:700px){.ct-r:has(.ct-regola){flex-wrap:wrap}.ct-r:has(.ct-regola) .t{flex-basis:100%;order:1}.ct-r:has(.ct-regola) .ct-int{order:0;margin-left:auto}}
.ct-regola .pn-tipo{padding-left:40px}

/* 12.07 — «Analisi dati» (pages/analisi.php; grafica approvata: proposta-analisi-dati.html). Di nuovo c'è solo la
   tabella che incrocia (celle più scure dove ci sono più persone) e, al telefono, la scheda per riga con la barra
   colorata. Linguette, filtri e contatori sono quelli di sempre. */
.an-ling{margin:0 0 14px;flex-wrap:wrap}
.an-incr{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}
.an-incr .an-sp{flex:1}
.an-incr .fb-s select{max-width:220px}
.an-tab-guscio{overflow-x:auto}
.an-tab{width:100%;border-collapse:collapse;font-size:var(--fs-secondario);font-variant-numeric:tabular-nums}
.an-tab th,.an-tab td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.an-tab th:first-child,.an-tab td:first-child{text-align:left;white-space:normal}
.an-tab th{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;white-space:normal;vertical-align:bottom}
.an-tab td.c{font-weight:600;padding:0}
.an-tab td.c a{display:block;padding:8px 10px;color:var(--ink);text-decoration:none}
.an-tab td.c:hover,.an-tab td.c.sel{outline:2px solid var(--area);outline-offset:-2px}
.an-tab td.z{color:var(--grigio-chiaro,#b6bccb)}
.an-tab tr.tot td{font-weight:700;border-bottom:0}
.an-tab tr.tot td a,.an-tab a.an-rt{color:inherit}
.an-bar{display:inline-block;height:6px;border-radius:3px;background:var(--area);vertical-align:middle;margin-right:8px}
.an-schede{display:none}
.an-nota{margin:10px 0 0}
.an-chi-t{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:0 0 6px}
.an-chi-t h3{margin:0}
.an-elenco a{font-weight:600}
.an-riga{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:var(--fs-secondario)}
.an-riga:last-child{border-bottom:0}
.an-riga .pill{justify-self:end}
.an-altri{margin:8px 0 0}
.an-salute{background:var(--warn-soft);color:#7a4e0c;border-radius:var(--r);padding:8px 12px;font-size:var(--fs-piccolo);margin:0 0 10px}
@media (max-width:600px){
  .an-tab-guscio{display:none}
  .an-incr .an-xt{flex-basis:100%}
  .an-incr .an-sp{display:none}
  .an-incr .fb-s{flex:1 1 140px}
  .an-incr .fb-s select{max-width:none;width:100%}
  .an-schede{display:flex;flex-direction:column;gap:8px}
  .an-sc{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;background:#fff}
  .an-sc-t{display:flex;justify-content:space-between;gap:8px;font-weight:700;margin:0 0 6px}
  .an-sc-t a{color:var(--ink);text-decoration:none}
  .an-strisce{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--soft);margin:0 0 6px}
  .an-strisce i{display:block;height:100%}
  .an-leg{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:var(--fs-piccolo);color:var(--muted)}
  .an-leg a{display:inline-flex;align-items:center;gap:5px;color:var(--muted);text-decoration:none;padding:3px 0}
  .an-leg a.sel{color:var(--ink);font-weight:700}
  .an-leg b{color:var(--ink)}
  .an-leg i{width:8px;height:8px;border-radius:2px;display:inline-block}
  .an-riga{grid-template-columns:minmax(0,1fr) auto}
  .an-riga .an-s2{display:none}
}
/* 12.08: «Come viaggia» di una persona in «Solo per qualcuno» (grafica laboratorio/bozze/eccezione-viaggio.html):
   una riga intera sotto le voci; il bordo giallo, come le voci, dice che è diverso dagli altri. In fondo al foglio
   perché vinca sulle regole generali dei campi. */
.ct-p .ct-come{display:flex;gap:6px 10px;align-items:center;flex-wrap:wrap;flex-basis:100%;margin:2px 0 0}
.ct-p .ct-come label{margin:0;font-size:var(--fs-piccolo)}
.ct-p .ct-come select{width:auto;max-width:100%;padding:4px 30px 4px 10px;font-size:var(--fs-piccolo);min-height:0;height:auto;margin:0}
.ct-p .ct-come.div select{border-color:#E0A93B;box-shadow:0 0 0 2px #FFF1CF}
.ct-p .ct-blocca{flex-basis:100%;margin:6px 0 0}
@media(max-width:600px){.ct-p .ct-come select{font-size:16px;flex:1 1 100%}}
/* 12.08 (controlli per andare online): al telefono la pastiglia di un filtro con una tendina dai nomi lunghi
   («Evento o board» in Analisi dati, con i titoli veri dei congressi) si allargava quanto l'opzione più lunga e
   faceva scorrere la pagina di lato (verifica-1207.js su Safari e Firefox). La tendina ora prende lo spazio che
   resta nella pastiglia, e la pastiglia non va oltre la riga. */
@media (max-width:700px){
  .fb-s{min-width:0;max-width:100%}
  .fb-s select{min-width:0;width:0;flex:1 1 auto;text-overflow:ellipsis}
}

/* 12.09 — Chi interviene in più giorni con meno notti (proposta-notti-giorni.html).
   Pagina del relatore e del componente: il riquadro dei giorni, arancione chiaro come gli avvisi gialli del calcolo. */
.pn-giorni{background:#FFF7EC;border:1.5px solid #F2C894;border-radius:12px;padding:12px 14px;margin:10px 0}
.pn-giorni b.t{display:block;color:#7a4e0c;font-size:var(--fs-testo,15px);margin-bottom:4px}
.pn-giorni ul{margin:6px 0;padding-left:18px}
.pn-giorni li{margin:2px 0}
.pn-giorni .no{color:#7a4e0c;font-weight:600}
.pn-giorni .si{color:var(--ok);font-weight:600}
.pn-giorni a{font-weight:600}
/* Pernottamenti: «Intervengono in giorni che le notti non coprono», le colonne della tabella di «Non hanno risposto» */
.pn-scop table.pn-soll-tab td:nth-child(1),.pn-scop table.pn-soll-tab th:nth-child(1){width:24%}
.pn-scop table.pn-soll-tab td:nth-child(2),.pn-scop table.pn-soll-tab th:nth-child(2){width:22%}
.pn-scop table.pn-soll-tab td:nth-child(3),.pn-scop table.pn-soll-tab th:nth-child(3){width:auto}
.pn-scop table.pn-soll-tab td:nth-child(4),.pn-scop table.pn-soll-tab th:nth-child(4){width:270px}
.pn-scop .pn-soll-az form,.pn-scop .pn-soll-az details{display:inline-block;margin:0 0 0 6px;vertical-align:middle}
.pn-scop .pn-scop-agg[open]::before{content:"";position:fixed;inset:0;background:rgba(10,13,49,.35);z-index:80}
.pn-scop .pn-scop-agg[open]>form.a-mano{position:fixed;z-index:81;left:50%;top:50%;transform:translate(-50%,-50%);text-align:left;white-space:normal;
  width:min(560px,92vw);max-height:86vh;overflow:auto;min-width:0;padding:18px;gap:10px;grid-template-columns:1fr 1fr;box-shadow:0 20px 60px rgba(10,13,49,.25)}
/* Faculty: l'etichetta «Parla in 3 giorni · 1 notte»; Programma: l'avviso sotto l'intervento */
a.pn-giorni-et{display:inline-block;margin-top:4px;background:var(--warn-soft);color:#7a4e0c;border-radius:99px;padding:2px 9px;font-size:var(--fs-micro,12px);font-weight:700;text-decoration:none;white-space:nowrap}
a.pn-giorni-et:hover{text-decoration:underline}
.pn-giorni-prog{margin:4px 0 0;background:#FFF7EC;border:1px solid #F2C894;border-radius:8px;padding:5px 9px;font-size:var(--fs-piccolo,13px);color:#7a4e0c}
.pn-giorni-prog a{font-weight:600;white-space:nowrap}
@media (max-width:700px){
  .pn-scop .pn-soll-az form,.pn-scop .pn-soll-az details{display:block;margin:6px 0 0}
  .pn-scop .pn-soll-az .btn,.pn-scop .pn-soll-az summary.btn{width:100%;text-align:center;justify-content:center;min-height:44px;display:flex}
  .pn-scop .pn-scop-agg[open]>form.a-mano{grid-template-columns:1fr}
}
.pn-scop .pn-soll-il{display:block;width:fit-content}
/* 12.10 — «Personalizza» in Faculty (proposta-personalizza.html, variante A) */
details.ct-box[open]>summary .ct-az{display:flex}
details.ct-box>summary .ct-se-aperto,details.ct-box[open]>summary .ct-se-chiuso{display:none}
details.ct-box[open]>summary .ct-se-aperto{display:inline-flex}
details.ct-box[open]>summary{align-items:center;justify-content:space-between}
details.ct-box[open]>summary .ct-righe{flex:1 1 auto}
.ct-alcuni{flex:1 1 100%;font-size:var(--fs-piccolo);color:var(--muted);margin-top:2px}
.ct-perchi .ct-sotto{margin-bottom:8px}
.ct-pc-lista{max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:4px 10px;background:#FBFBFE}
.ct-pc-lista label.ct-pc{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:7px 0;margin:0;border-bottom:1px solid #F0F1F7;font-weight:400;cursor:pointer}
.ct-pc-lista label.ct-pc:last-child{border-bottom:0}
.ct-pc-lista label.ct-pc[hidden]{display:none}
.ct-pc-lista .ct-pc input[type=checkbox]{flex:none;width:20px;height:20px;margin:0;order:0}
.ct-tag{display:inline-block;font-size:.78em;font-weight:600;border-radius:6px;padding:1px 7px;background:#FDF0E1;color:#7A4E0C}
.ct-pc-nessuno[hidden]{display:none!important}
.ct-sub{font-family:Montserrat,sans-serif}
.ct-r2{display:flex;gap:6px 12px;align-items:center;flex-wrap:wrap;padding:8px 0;border-top:1px dashed var(--line)}
.ct-r2 .chi{flex:1 1 170px;min-width:0}
.ct-r2 form{margin:0}
.ct-r2 select{width:auto!important;max-width:100%;min-height:0;padding:5px 30px 5px 10px;font-size:var(--fs-piccolo)}
.ct-tutti>summary{cursor:pointer;padding:8px 0;color:var(--blu);font-weight:600}
@media (max-width:600px){
  .ct-r2 .chi{flex-basis:100%}
  details.ct-box[open]>summary{flex-direction:row}
}
.ct-r2 .ct-come.div select{border-color:#E0A93B;box-shadow:0 0 0 2px #FFF1CF}
@media (max-width:600px){.ct-r2 select,.ct-col1 input[type=search]{font-size:16px}}
/* 12.11: quante notti ha, nella lista della Faculty (uniforme con «Parla in … giorni», a.pn-giorni-et) */
.pn-notti{display:inline-block;margin-top:4px;background:#E8F1F8;color:#0b5680;border-radius:99px;padding:2px 9px;font-size:var(--fs-micro,12px);font-weight:700;white-space:nowrap}
.pn-notti.zero{background:#F1F2F4;color:#4b5563}
.pn-notti.suo{background:#EDE9FE;color:#5b21b6}
.fc-sotto{flex-basis:100%;width:100%;margin:0 0 2px}
.fc-sotto .pn-notti{margin-top:4px}
/* 12.12 — il canale workshop: la proposta dal programma (gialla, come «Intervengono in giorni che le notti non coprono»),
   le notti del workshop (la pastiglia viola delle notti «solo sue», 12.11, ma che va a capo: il testo è lungo) e
   l'avviso rosso «alla stessa ora…» sotto il nome, come gli avvisi rossi della Faculty */
.ws-proposta{background:var(--warn-soft);border-color:#EBD3A2;border-left:4px solid var(--warn)}
.ws-proposta .ws-capo-az form{display:inline-block}
.ws-pill{display:inline-block;margin-top:4px;background:#EDE9FE;color:#5b21b6;border-radius:99px;padding:2px 9px;font-size:var(--fs-micro,12px);font-weight:700;white-space:normal;line-height:1.35}
.ws-scontro{margin-top:4px;font-size:var(--fs-micro,12.5px);font-weight:600;color:var(--danger)}
.ws-scontro a{color:var(--danger)}
.ws-scontro-p{background:var(--danger-soft);border-color:#EFC6C1;border-left:4px solid var(--danger)}
.ws-scontro-p .ws-scontro{font-size:inherit;font-weight:400;color:inherit}
.ws-notti{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.ws-notti-f{margin-top:8px}
@media (max-width:600px){ .ws-proposta .ws-capo-az form,.ws-proposta .ws-capo-az .btn{width:100%} }
.ws-notti-f .hint{margin:2px 0 10px}
/* 12.13 — «Non serve un relatore» (Programma, grafica approvata variante B): la voce in cima all'elenco della
   casella del relatore, con la riga piccola sotto; scelta, la casella è grigia e corsiva, senza «+ altro relatore» */
.ss-lista li.ss-primo{display:block;color:var(--ink);font-weight:600;background:var(--soft);border-radius:7px;margin:2px 0 4px}
.ss-lista li.ss-primo small{display:block;max-width:none;white-space:normal;font-weight:400}
.ss-lista li.ss-primo.su,.ss-lista li.ss-primo:hover{background:#E4EBF6}
.rel-cella.rel-senza .ss-campo{font-style:italic;color:var(--muted)}
.rel-cella.rel-senza .rel-altri,.rel-cella.rel-senza .vp-segue{display:none}
.rel-non-serve{font-style:italic}
/* 12.14 — notti e camera in più a carico del relatore (grafica approvata, bozze/pern-carico.html): nella sua pagina il
   riquadro verde «Lo paga l'organizzazione» e quello arancione tratteggiato «La sua richiesta» (pieno quando è
   concessa); in Pernottamenti il riquadro «Richieste dei relatori da decidere» e la riga sotto il nome */
.pp-noi{background:var(--ok-soft);border:1px solid #BFE3CC;border-radius:12px;padding:10px 12px;margin:10px 0}
.pp-noi .riass{margin-bottom:6px}
.pp-et{font-size:var(--fs-piccolo);font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pp-noi .pp-et{color:var(--ok)}
.pp-lui{background:var(--warn-soft);border:2px dashed #E2B75B;border-radius:12px;padding:10px 12px;margin:10px 0}
.pp-lui.pp-ok{border-style:solid}
.pp-lui .pp-et{color:var(--warn)}
.pp-lui .pp-et .pill{text-transform:none;letter-spacing:0}
.pp-voci{margin:0;padding-left:20px;font-size:var(--fs-testo-s)}
.pp-voci li{margin:2px 0}
.pp-az{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;margin-top:8px}
.pp-az .pp-cambia[open]{flex-basis:100%}
.pp-az .pp-cambia[open]>summary{margin-bottom:6px}
.pp-avv{background:var(--warn-soft);border-left:4px solid #E2B75B;border-radius:8px;padding:9px 11px;font-size:var(--fs-secondario);margin:8px 0 10px}
.pp-riga .pp-modulo{margin-top:0}
.pp-diff{margin:4px 0 2px}
.pp-piu{font-weight:700;color:var(--warn)}
.pp-spunta{margin-top:8px}
.pp-int{margin-top:3px;font-weight:600;color:var(--blu)}
.pp-riga-piu{margin-top:2px;color:var(--warn)}
.pp-dec{border-color:#E9CF8F}
.pn-soll .pp-dec-az{text-align:left;white-space:normal;min-width:170px}
.pn-soll .pp-dec-az form.pp-concedi{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.pp-dec-az .pp-concedi .check{white-space:nowrap}
.pp-dec-az .pp-no{margin-top:6px}
.pp-dec-az .pp-no>summary{white-space:nowrap}
.pp-dec-az .pp-no textarea{min-width:220px}
.pp-dec-az .pp-no[open]{min-width:240px}
@media (max-width:600px){ .pp-dec-az .pp-concedi .btn,.pp-dec-az .pp-no>summary{width:100%;text-align:center} .pp-dec-az .pp-no textarea{min-width:0;width:100%} .pp-az>form,.pp-az>form .btn{width:100%} }

/* 12.15 — Grant: «Come viaggia» nel riquadro del professionista (uniforme con .ct-p .ct-come della Faculty, 12.08) */
.gr-come{display:flex;gap:6px 10px;align-items:center;flex-wrap:wrap;margin:8px 0 0}
.gr-come form{margin:0}
.gr-come select{width:auto;max-width:100%;padding:4px 30px 4px 10px;font-size:var(--fs-piccolo);min-height:0;height:auto;margin:0}
.gr-come.div select{border-color:#E0A93B;box-shadow:0 0 0 2px #FFF1CF}
.gr-blocca{margin:6px 0 0}
.gr-chiesti{font-size:var(--fs-piccolo)}
@media(max-width:600px){.gr-come form,.gr-come select{flex:1 1 100%;width:100%;font-size:16px}}
/* 12.15: al telefono la tabellina del professionista ha Voce, Speso e Resta (come nella grafica): «Venduto» non ci stava */
@media(max-width:600px){.gr-pro table.gr-bud th:nth-child(2),.gr-pro table.gr-bud td:nth-child(2){display:none}}

/* 12.16 — Board: «Come viaggia» di un componente a rimborso in «Solo per qualcuno» (uniforme con .ct-p .ct-come della
   Faculty, 12.08) e «Un componente a rimborso», la tendina per sceglierlo */
.bv-rimb-agg{display:flex;gap:6px 10px;align-items:center;flex-wrap:wrap;margin:10px 0 0}
.bv-rimb-agg select{width:auto;max-width:100%;padding:4px 30px 4px 10px;font-size:var(--fs-piccolo);min-height:0;height:auto;margin:0}
.bv-rimb-p .ct-come .btn{margin:0}
@media(max-width:600px){.bv-rimb-agg select{font-size:16px;flex:1 1 100%}.bv-rimb-p .ct-come .btn{flex:1 1 100%}}
/* 12.17 — i workshop dal Tipo del programma (grafica bozze/workshop-tipo): le voci del riquadro giallo, «È ECM?» a due
   pulsanti (il segmento .seg di sempre, con le scelte vere dentro: senza JavaScript), lo stato ECM sul workshop e la
   pastiglia viola sulla riga del Programma (la stessa .ws-pill della 12.12) */
.ws-pr-voce{padding:12px 0 4px;border-top:1px solid #EBD3A2;margin-top:10px}
.ws-pr-f{margin:8px 0 0}
.ws-pr-nota{margin:8px 0 6px}
.ws-ecm-stato{display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;margin-top:6px}
.ws-ecm-stato .ws-pill{margin-top:0}
.ws-ecm-cambia{margin:0;display:inline}
a.ws-pill{text-decoration:none}a.ws-pill:hover{background:#DDD6FE}
@media(max-width:600px){.ws-pr-f .ws-capo-az{flex-direction:column}.ws-pr-f .ws-capo-az .btn{width:100%}}
.ws-pill-riga{margin-top:2px}
/* 12.18 — «I suoi interventi» nella pagina del relatore (bozze/relatore-interventi.html, variante A): una testata per
   giorno come il Programma, l'ora grande a sinistra, cosa fa al centro (colori di ruolo della Faculty), la sala a destra
   in un riassunto grigio; al telefono la sala va sotto il titolo */
.ri-giorno{margin-top:16px}
.ri-giorno:first-of-type{margin-top:0}
.ri-giorno.passato{opacity:.55}
.ri-testa{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;border-bottom:2px solid var(--navy,#0A0D31);padding-bottom:6px;margin-bottom:4px}
.ri-testa b{font-family:Montserrat,sans-serif;font-weight:700;font-size:16px}
.ri-testa span{color:var(--muted);font-size:var(--fs-piccolo,13px)}
.ri-giorno.oggi .ri-testa{border-bottom-color:var(--blu)}
.ri-giorno.oggi .ri-testa b{color:var(--blu)}
.ri-imp{display:grid;grid-template-columns:104px minmax(0,1fr) 200px;gap:14px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}
.ri-giorno .ri-imp:last-child{border-bottom:0}
.ri-ora b{display:block;font-family:Montserrat,sans-serif;font-weight:700;font-size:20px;line-height:1.1}
.ri-ora span{display:block;color:var(--muted);font-size:12.5px;white-space:nowrap}
.ri-tipo{display:inline-block;font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:6px;margin-bottom:4px}
.ri-tipo.rel{background:var(--blu-soft);color:var(--blu)}
.ri-tipo.mod{background:#EDE9FE;color:#5b21b6}
.ri-tipo.ws{background:var(--warn-soft);color:#7a4e0c}
.ri-t{font-weight:700;font-size:15.5px;line-height:1.35;overflow-wrap:anywhere}
.ri-s{color:var(--muted);font-size:var(--fs-piccolo,13px);margin-top:3px;overflow-wrap:anywhere}
.ri-sala{background:var(--soft);border-radius:var(--r);padding:8px 10px;font-size:13.5px;overflow-wrap:anywhere}
.ri-sala b{display:block;font-size:14.5px}
.ri-sala span{display:block;color:var(--muted);font-size:12.5px}
.rl-interventi .rel-cal{margin-top:14px}
@media (max-width:600px){
  .ri-imp{grid-template-columns:84px minmax(0,1fr);gap:10px}
  .ri-ora span{font-size:12px}
  .ri-ora b{font-size:17px}
  .ri-sala{grid-column:2;margin-top:2px;padding:6px 9px}
  .ri-sala b,.ri-sala span{display:inline}
  .ri-sala span::before{content:" · "}
}
/* 12.18 — «Le serve qualcosa in più? È a suo carico» prima di confermare (bozze/pern-carico-prima.html, variante A): il
   punto 2 della scelta, chiuso, con il bollino arancione (l'unico passo facoltativo e a suo carico); con la proposta,
   la stessa riga sopra i tre pulsanti. Dentro, lo stesso modulo della 12.14 senza pulsante suo. */
.pp-prima{border:1.5px solid #F2C894;border-radius:12px;background:#FFFCF6;margin:12px 0}
.pp-prima>summary{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;cursor:pointer;list-style:none}
.pp-prima>summary::-webkit-details-marker{display:none}
.pp-prima>summary::after{content:"▾";margin-left:auto;color:#7a4e0c;font-weight:700}
.pp-prima[open]>summary::after{content:"▴"}
.pp-prima .n{flex:0 0 26px;height:26px;border-radius:50%;background:#E2B75B;color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}
.pp-prima .pp-cosa{display:flex;flex-direction:column;gap:2px;min-width:0}
.pp-prima .pp-cosa b{color:#7a4e0c}
.pp-prima .pp-sotto{font-size:var(--fs-piccolo,13px);color:var(--muted)}
.pp-prima[open] .pp-sotto{display:none}
.pp-prima .pp-avv{margin:0 12px 10px}
.pp-prima .pp-campi{border:0;margin:0;padding:0 12px 12px;min-width:0}
.pp-prima .pp-campi[disabled]{opacity:.6}

/* ---------- 12.19: Comunicazioni, si capisce come si manda ogni lettera (bozze/grafiche-fila-1217.html, 1a-1f) ---------- */
.com-guida{margin:-4px 0 12px}
.com-r{grid-template-columns:minmax(0,1.6fr) minmax(0,1.1fr) minmax(200px,auto)}
.com-chi .com-testo{font-weight:600}
.com-st{color:var(--testo)}
.com-az{display:flex;justify-content:flex-end;grid-template-columns:none}
.com-az .btn{white-space:normal;max-width:300px}
.com-per-mandarla{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between}
.com-per-mandarla .btn{flex:0 0 auto}
@media (max-width:900px){
  .com-r{grid-template-columns:1fr}
  .com-az{display:flex;justify-content:stretch}
  .com-az .btn{flex:1 1 auto;max-width:none;justify-content:center}
}
.mod-colonna{max-width:900px}
.mod-var > summary{cursor:pointer;font-weight:700;color:var(--area)}
.mod-var[open] > summary{margin-bottom:8px}
.mod-var-tutte > summary{cursor:pointer;margin:10px 0 6px;color:var(--area)}
/* il testo di un'email con i caratteri di tutta la piattaforma, non quelli della macchina da scrivere */
textarea.testo-email{width:100%;max-width:100%;font:inherit;font-size:16px;line-height:1.55}
.ed-barra{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px}
.ed-b{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card,#fff);color:var(--testo);cursor:pointer;font:inherit;font-size:var(--fs-piccolo)}
.ed-b:hover{border-color:var(--area)}
.ed-b .ed-ic{font-weight:800;min-width:14px;text-align:center}
.ed-b[data-ed=i] .ed-ic{font-style:italic;font-family:Georgia,serif}
.ed-come{margin:10px 0 4px}
.ed-come-t{font-size:var(--fs-piccolo);font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.ed-foglio{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;max-height:420px;overflow-y:auto}
.ed-testa{background:#0A0D31;color:#fff;font-weight:800;padding:10px 16px;letter-spacing:.02em}
.ed-corpo{padding:14px 16px;color:#0A0D31;line-height:1.55;overflow-wrap:anywhere}
.ed-corpo p{margin:0 0 12px}
.ed-corpo ul,.ed-corpo ol{margin:0 0 12px;padding-left:22px}
.ed-tit{font-size:17px;font-weight:800;margin:4px 0 8px}
.ed-bottone{display:inline-block;background:#060ED0;color:#fff;font-weight:700;padding:10px 16px;border-radius:10px;margin:0 0 12px}
.ed-link{color:#060ED0;word-break:break-all}
@media (max-width:600px){
  .ed-b{min-width:44px;min-height:44px;justify-content:center}
  .ed-b .ed-et{display:none}
}
/* «A chi» (pages/_a_chi.php) */
.achi-pill{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.achi-nc-box{margin-top:10px;border-top:1px solid var(--soft);padding-top:8px}
.achi-nc-box > summary{cursor:pointer}
.achi-nc-box .btn{margin-top:8px}
.achi-segr{display:flex;gap:6px;align-items:flex-start;margin-top:4px;font-weight:400}
.achi-segr input{flex:0 0 auto;margin-top:2px}
/* «Rimandala a…» */
.ll-gia{color:#B45309;font-weight:600}
.ll-cambiata{color:var(--blu,#060ED0);font-weight:600}
/* la segreteria in copia: scheda del professionista e pagina del relatore */
.segr-riga > summary{cursor:pointer;list-style:none}
.segr-riga > summary::-webkit-details-marker{display:none}
.segr-riga[open] > summary{margin-bottom:8px}
.segr-modulo{margin-top:6px}
.segr-modo{border:0;padding:0;margin:0 0 8px}
.segr-quali > summary{cursor:pointer;color:var(--area);margin:4px 0}
.segr-tab td,.segr-tab th{padding:4px 8px 4px 0;text-align:left;vertical-align:top}
.segr-sua{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;background:var(--soft);border-radius:10px;padding:8px 12px;margin:8px 0}
.fac-fare-r.acceso{outline:2px solid var(--area);outline-offset:4px;border-radius:8px}
.com-chi > span .pill,.com-chi > span a{display:inline-block;width:auto}
.com-chi > span .pill{padding:1px 8px;margin:0 2px}
.achi-segr{display:block}
.achi-segr input{display:inline-block;vertical-align:-2px;margin:0 6px 0 0}

/* ---------- 12.20: Impostazioni, un permesso per ogni voce ---------- */
tr.rp-imp td{vertical-align:top}
tr.rp-imp .small{text-transform:none;letter-spacing:0;font-weight:400;font-family:inherit;font-size:var(--fs-piccolo);max-width:42ch}
tr.rp-imp td.rp-c b{white-space:nowrap}
.imp-fs{border:0;padding:0;margin:0;min-width:0}
.imp-legge .imp-fs button,.imp-legge .imp-fs input[type=file]{display:none}
.imp-legge > summary .imp-st{color:var(--muted)}

/* ---------- 12.21: Controlli, «Apri la sessione» dritto sulla riga (bozze/controlli-vai-giusto.html, variante A) ---------- */
.ctrl-posti{display:grid;gap:8px;margin-top:8px}
.ctrl-posto{display:flex;gap:10px 14px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--soft);border-radius:10px;padding:8px 12px}
.ctrl-posto .ctrl-p-t{min-width:0;overflow-wrap:anywhere}
.ctrl-posto .btn{flex:0 0 auto}
.ctrl-elenco{margin:8px 0;padding-left:18px}
.ctrl-elenco li{margin:3px 0}
.ctrl-voce.ctrl-dove{display:block}
.prog-da-ctrl{display:flex;gap:10px 16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.riga-da-guardare,tr.riga-da-guardare > td{background:#FFF4C2!important}
.ses-l-r.riga-da-guardare,.ses-sotto.riga-da-guardare,.ses-l-testa.riga-da-guardare,.ses-testa.riga-da-guardare{outline:2px solid #E0B400;outline-offset:2px;border-radius:6px}
@media (max-width:600px){ .ctrl-posto{flex-direction:column;align-items:stretch} .ctrl-posto .btn{justify-content:center} }

/* ---------- 12.22: Grant, viaggi, notti e iscrizione (bozze/grant-logistica.html, variante A) ---------- */
.gr-pill{display:inline-block;margin-top:4px;background:#FDF3D7;color:#7A5300;border-radius:99px;padding:2px 9px;font-size:var(--fs-micro,12px);font-weight:700;white-space:normal;line-height:1.35;text-decoration:none}
a.gr-pill:hover{background:#FBE7AE}
.gr-fascia{display:flex;gap:10px 16px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-left-color:#C9971C;background:#FFF8E6}
.gr-fascia form{margin:0}
.gr-tab{display:flex;gap:6px;margin:0 0 14px;flex-wrap:wrap}
.gr-tab a{padding:7px 14px;border:1px solid var(--line);border-radius:999px;font-weight:600;text-decoration:none;color:var(--testo);background:var(--card,#fff)}
.gr-tab a.on{background:var(--area);color:#fff;border-color:var(--area)}
.gr-comp{display:flex;gap:4px;flex-wrap:wrap}
.gr-c{border:1px solid var(--line);border-radius:6px;padding:1px 6px;color:var(--muted);text-decoration:line-through;font-size:var(--fs-micro,12px)}
.gr-c.si{color:#7A5300;background:#FDF3D7;border-color:#F0D58A;text-decoration:none;font-weight:700}
.gr-iscr{display:inline-block;margin:4px 0 0}
a.gr-vai{text-decoration:none}

/* ---------- 12.23 — Stampe complete degli elenchi, su carta ufficiale izeos (bozze/stampe-complete.html, strada A) ----------
   I fogli di app/foglio_elenco.php (.fe-foglio) in ogni pagina: a schermo non ci sono; in stampa c'è solo il foglio
   (tutto il resto della pagina sparisce, anche dentro i riquadri che lo contengono). Più fogli nella stessa pagina:
   .fo-alt esce solo dalla sua voce (html.fo-scelta e .fo-scelto li mette comportamenti.js, «12.23»).
   «Stampa ▾»: il menu di «Condividi» (11.58); al telefono si apre dal basso. */
.fo-menu>summary.btn{list-style:none}
.fo-menu>summary.btn::-webkit-details-marker{display:none}
.fo-menu>summary.btn:hover{text-decoration:none}
.fo-menu .cond-menu{left:auto;right:0;min-width:250px}
.fo-menu .cond-menu button b{display:block;font-weight:600}
.fo-menu .cond-menu button small{display:block;color:var(--muted,#5d6875);font-size:13px}
@media (max-width:700px){
  .fo-menu .cond-menu{position:fixed;left:0;right:0;top:auto;bottom:0;min-width:0;border-radius:18px 18px 0 0;padding:12px 12px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px rgba(10,14,40,.25)}
  .fo-menu .cond-menu::before{content:"";display:block;width:44px;height:5px;border-radius:9px;background:var(--line);margin:0 auto 8px}
  .fo-menu .cond-menu button{padding:13px 12px}
}
@media print{
  /* il foglio, in ogni pagina che ne ha uno */
  main:has(.fe-foglio) *:not(.fe-foglio):not(.fe-foglio *):not(:has(.fe-foglio)){display:none!important}
  main:has(.fe-foglio) :has(.fe-foglio){display:block!important;padding:0!important;margin:0!important;border:0!important;box-shadow:none!important;background:none!important;overflow:visible!important;max-width:none!important;width:auto!important}
  .fe-foglio{display:block;font:12.5px/1.45 -apple-system,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#111;background:#fff}
  .fe-foglio.fo-alt{display:none!important}
  html.fo-scelta .fe-foglio{display:none!important}
  html.fo-scelta .fe-foglio.fo-scelto{display:block!important}
  .fe-foglio~.fe-foglio{break-before:page}
  .fe-foglio .fo-capo{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;border-bottom:3px solid #0A0D31;padding-bottom:8px;margin-bottom:14px}
  .fe-foglio .fo-tit{font-size:20px;font-weight:700}
  .fe-foglio .fo-sotto{font-size:12.5px}
  .fe-foglio .fo-scelti{font-size:12px;font-weight:700;margin-top:2px}
  .fe-foglio .fo-scelti[hidden]{display:none!important}
  .fe-foglio .fo-marchio{font-weight:800;font-size:18px;flex:none}
  .fe-foglio .fo-marchio img{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .fe-foglio .fo-sez{font-weight:700;font-size:15px;margin-top:14px;break-after:avoid}
  .fe-foglio .fo-sez span{font-weight:400}
  .fe-foglio .fo-tab{width:100%;border-collapse:collapse;margin:6px 0 4px;display:table!important}
  .fe-foglio .fo-tab thead{display:table-header-group!important}.fe-foglio .fo-tab tbody{display:table-row-group!important}
  .fe-foglio .fo-tab tr{display:table-row!important;break-inside:avoid}
  .fe-foglio .fo-tab tr.fo-via{display:none!important}
  .fe-foglio .fo-tab th{display:table-cell!important;text-align:left;border-bottom:2px solid #111;padding:5px 6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;background:none;color:#111}
  .fe-foglio .fo-tab td{display:table-cell!important;border-bottom:1px solid #ccc;padding:6px;vertical-align:top;min-width:0!important;background:none;word-break:normal;overflow-wrap:break-word;hyphens:manual}
  .fe-foglio .fo-viaggi td:nth-child(1){width:20%}.fe-foglio .fo-viaggi td:nth-child(2){width:8%}.fe-foglio .fo-viaggi td:nth-child(3){width:27%}.fe-foglio .fo-viaggi td:nth-child(4){width:12%}.fe-foglio .fo-viaggi td:nth-child(5){width:12%}
  .fe-foglio .fo-fac{font-size:11.5px}.fe-foglio .fo-fac th{font-size:9.5px}.fe-foglio .fo-fac td:nth-child(1){width:18%}
  .fe-foglio .fo-cpn{width:auto;min-width:50%}
  .fe-foglio .fo-conto{font-size:12px;margin:4px 0 14px}
  .fe-foglio .fo-piede{margin-top:18px;font-size:10px;color:#555;border-top:1px solid #ccc;padding-top:6px}
  .fe-foglio .fo-piede .fo-az{color:#333;margin-bottom:2px}

  /* LA RETE DI SICUREZZA, per ogni altra pagina stampata con ⌘P: niente menu, riquadro rosso, pulsanti; i campi come
     testo, le righe chiuse aperte (comportamenti.js), niente fuori dal foglio */
  body{background:#fff!important}
  body::before{display:none!important}
  .da-completare,.barra-sel,.el-sel,.cond-menu,.ss-lista,dialog,.topnav,.side,aside,.barra-mob,.ev-schede,.crumb{display:none!important}
  main .btn,main button:not(.pil.on),main input[type=file],main input[type=submit]{display:none!important}
  main input:not([type=checkbox]):not([type=radio]):not([type=hidden]),main select,main textarea{border:0!important;background:none!important;box-shadow:none!important;padding:0!important;-webkit-appearance:none;appearance:none;resize:none;color:#111!important;min-height:0!important;font:inherit}
  main input::placeholder,main textarea::placeholder{color:transparent!important}
  main,main .panel,main .tab-scorre,main .tab-scorri,main .tbl{max-width:100%!important;overflow:visible!important}
  main table:not(.fo-tab){max-width:100%!important;min-width:0!important}
  main th,main td{min-width:0!important}
}
@media print{
  .fe-foglio .fo-noi td:nth-child(1){width:22%}.fe-foglio .fo-noi td:nth-child(2),.fe-foglio .fo-noi td:nth-child(3){width:9%;white-space:nowrap}
  .fe-foglio .fo-noi td:nth-child(4){width:5%}.fe-foglio .fo-noi td:nth-child(5){width:12%}.fe-foglio .fo-noi td:nth-child(6){width:11%}
  .fe-foglio .fo-room td:nth-child(1){width:40%}
}
/* la Faculty ha tante colonne quanti documenti: il suo foglio è orizzontale (come i candidati, 11.99) */
@media print{
  /* 12.31: il foglio orizzontale lo dice fe_apri(…, largo: true), con la sua pagina */
  .fe-foglio .fo-fac td:nth-child(1){width:17%;min-width:34mm!important}.fe-foglio .fo-fac td:nth-child(2),.fe-foglio .fo-fac td:nth-child(3){min-width:20mm!important}
}

/* ---------- 12.24 — Faculty: «Personalizza» in una scheda sola (bozze/personalizza-scheda.html) ----------
   «Per tutti» chiusa in cima; due colonne (1 Per chi?, 2 Cosa trova nella sua pagina); il riepilogo scuro come la
   barra «N scelti» (11.54, 12.10); l'arancione «diverso» (.ct-tag, 12.10); il giallo della riga toccata (12.17).
   Al telefono due passi con la barra in basso. */
details.ct-pertutti{border:1px solid var(--line);border-radius:12px;background:#FBFBFE;margin:10px 0 12px}
details.ct-pertutti>summary{list-style:none;cursor:pointer;display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 14px;font-size:var(--fs-secondario)}
details.ct-pertutti>summary::-webkit-details-marker{display:none}
details.ct-pertutti[open]>summary .btn{display:none}
details.ct-pertutti>.ct-sotto,details.ct-pertutti>form,details.ct-pertutti>.ct-avviso{margin:0 14px 12px}
.ct-fatto{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ct-fatto form{margin:0}
form.ct-scheda{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:14px;margin:0}
.ct-col{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff;min-width:0}
.ct-col h4{margin:0 0 10px;font-family:Montserrat,sans-serif;font-size:1.02em;display:flex;gap:8px;align-items:center}
.ct-col1 input[type=search]{width:100%;margin:0 0 8px}
.ct-fili{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 8px}
.ct-fil{border:1px solid var(--line);background:#fff;border-radius:99px;padding:4px 11px;font-size:var(--fs-piccolo);cursor:pointer;color:var(--ink)}
.ct-fil b{font-weight:700;margin-left:2px}
.ct-fil.on{background:var(--area,var(--blu));border-color:var(--area,var(--blu));color:#fff}
.ct-scelti{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 8px;font-size:var(--fs-piccolo)}
.ct-scelti[hidden]{display:none}
.ct-chips{display:contents}
.ct-chip{display:inline-flex;align-items:center;gap:4px;background:var(--blu-soft,#EEF1FF);border-radius:99px;padding:2px 4px 2px 10px;font-weight:600}
.ct-chip-x{border:0;background:none;cursor:pointer;font-size:12px;padding:2px 6px;color:var(--muted)}
.ct-togli-tutti{border:0;background:none;color:var(--area,var(--blu));cursor:pointer;font-size:var(--fs-piccolo);padding:2px 4px}
.ct-col1 .ct-pc-lista{max-height:420px}
.ct-leg{margin:8px 0 0}
.ct-vuota{border:1.5px dashed var(--line);border-radius:12px;padding:26px 18px;text-align:center;display:flex;flex-direction:column;gap:4px}
.ct-vuota[hidden],.ct-dentro[hidden]{display:none}
table.ct-oggi{width:100%;font-size:var(--fs-piccolo);border-collapse:collapse;margin:0 0 6px}
table.ct-oggi th,table.ct-oggi td{text-align:left;padding:5px 6px;border-bottom:1px solid #F0F1F7}
table.ct-oggi td.chi{font-weight:600}
.ct-sez{border-top:1px solid var(--line);padding:10px 0 4px;margin-top:6px}
.ct-sez-t{margin:0 0 6px}
.ct-scr{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:6px 8px;border-radius:9px;margin:0 -8px}
.ct-scr.toccata{background:#FFF6D6}
.ct-scr .t{flex:1 1 180px;min-width:0}
.ct-tri{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.ct-tri label{margin:0;cursor:pointer;font-weight:400}
.ct-tri label[hidden]{display:none}
.ct-tri input{position:absolute;opacity:0;width:1px;height:1px}
.ct-tri span{display:block;padding:5px 11px;font-size:var(--fs-piccolo);border-left:1px solid var(--line)}
.ct-tri label:first-child span,.ct-tri label[hidden]+label span{border-left:0}
.ct-tri input:checked+span{background:var(--area,var(--blu));color:#fff;font-weight:600}
.ct-tri input:focus-visible+span{outline:2px solid var(--area,var(--blu));outline-offset:-2px}
.ct-sez.grigia .ct-scr,.ct-sez.grigia .ct-docs{opacity:.45;pointer-events:none}
.ct-grigio[hidden]{display:none}
.ct-blocchi .note{margin:6px 0 0}
.ct-docs{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0}
.ct-docs[hidden]{display:none}
.ct-riep{grid-column:1/-1;background:#0A0D31;color:#fff;border-radius:14px;padding:14px 18px}
.ct-riep[hidden]{display:none}
.ct-riep ul{margin:6px 0;padding-left:18px}
.ct-riep li{margin:3px 0}
.ct-riep .ct-avv{color:#FFD58A}
.ct-riep .ct-blocco-r{color:#FFB4A8}
.ct-riep .row{justify-content:flex-end;gap:8px}
.ct-riep .btn:not(.primary){background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.ct-barra-tel{display:none}
.ct-ora{margin-top:14px}
.ct-ora h4{margin:0 0 8px;font-family:Montserrat,sans-serif}
.ct-ora-t td.azioni{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.ct-ora-t td.azioni form{margin:0}
.ct-ora:not(.tutti) .ct-ora-t tbody tr:nth-child(n+6){display:none}
@media (max-width:700px){
  form.ct-scheda{grid-template-columns:1fr;padding-bottom:64px}
  form.ct-scheda.ct-passo2 .ct-col1,form.ct-scheda:not(.ct-passo2) .ct-col2{display:none}
  form.ct-scheda:not(.ct-passo2) .ct-riep{display:none}
  .ct-barra-tel:not([hidden]){display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;gap:10px;align-items:center;justify-content:space-between;background:#0A0D31;color:#fff;padding:10px 16px calc(10px + env(safe-area-inset-bottom))}
  .ct-barra-tel .btn:not(.primary){background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
  .ct-scr{flex-direction:column;align-items:stretch;gap:6px}.ct-scr .t{flex:0 0 auto}
  .ct-tri{display:flex}.ct-tri label{flex:1 1 0}.ct-tri span{text-align:center;padding:9px 6px}
  .ct-ora-t td.azioni{justify-content:stretch}.ct-ora-t td.azioni>*{flex:1 1 auto}
}
/* «Da chiudere» (12.24): il nome porta alla sua scheda; «Togli dalla faculty…» in fondo agli stati */
.da-chiudere .riga-nome a.dc-nome{font-weight:700}
.da-chiudere .dc-vedi{display:block;font-size:var(--fs-piccolo)}
.da-chiudere .dc-togli{margin-left:auto}
@media (max-width:700px){ .da-chiudere .dc-togli{margin-left:0;flex:1 1 100%;text-align:center;justify-content:center} }
.pers-fac-scheda{margin-left:6px}
@media (max-width:700px){ .pers-fac-scheda{display:flex;margin:6px 0 0;justify-content:center} }
.ct-tri label{display:flex;align-items:stretch;gap:0;padding:0;min-height:0}
.ct-tri label span{flex:1 1 auto;display:flex;align-items:center;justify-content:center}
/* ---------- 12.25 — Stampe: il «Programma del congresso» e «Aspetto» (bozze/programma-congresso.html) ---------- */
/* ---------- 12.26 — «Sito dell'evento» → Personalizza (prototipo approvato bozze/sito-congresso.html) ---------- */
.sp-due{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}
.sp-riga{margin:0 0 12px}.sp-riga>b{display:block;margin-bottom:6px}
.sp-opz{display:flex;flex-wrap:wrap;gap:6px}
.sp-o{margin:0!important;cursor:pointer}.sp-o input{position:absolute;opacity:0;width:1px;height:1px}
.sp-o span{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:var(--fs-piccolo);font-weight:600;background:#fff}
.sp-o span i{width:16px;height:16px;border-radius:50%;display:inline-block}
.sp-o input:checked+span{box-shadow:0 0 0 2px var(--blu) inset;border-color:var(--blu)}
.sp-o input:focus-visible+span{outline:2px solid var(--blu);outline-offset:2px}
.sp-ante{background:#f4f5fb;border:1px solid var(--line);border-radius:18px;padding:12px;display:grid;gap:8px;--g:var(--c)}
.sp-ante.sfum{--g:linear-gradient(135deg,var(--c),var(--x))}
.sp-hero{border-radius:16px;padding:12px;background:radial-gradient(120% 120% at 100% 0%,color-mix(in srgb,var(--c) 22%,transparent),transparent 60%),#fff;border:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.sp-n{font-family:'Archivo',sans-serif;font-weight:800;font-size:34px;line-height:.9;color:var(--c)}
.sp-card{background:#fff;border:1px solid var(--line);border-left:4px solid var(--c);border-radius:12px;padding:8px 10px;font-size:13px}
.sp-tag{background:var(--c);color:#fff;border-radius:5px;padding:0 5px;font-size:10px;font-weight:700}
.sp-bar{height:4px;background:var(--line);border-radius:4px;margin-top:6px}.sp-bar i{display:block;width:45%;height:100%;background:var(--c);border-radius:4px}
.sp-chip{justify-self:start;background:var(--g);color:#fff;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600}
.sp-ante.netta .sp-hero,.sp-ante.netta .sp-card{border-radius:5px}.sp-ante.netta .sp-chip{border-radius:5px}
.sp-ante.classico .sp-n,.sp-ante.classico b{font-family:Georgia,serif}
@media (max-width:800px){ .sp-due{grid-template-columns:1fr} }
/* ---------- 12.27 — Abstract (bozze/grafiche-fila-1217.html, sezione 3) ---------- */
.abs-come>summary{cursor:pointer}.abs-come .row{gap:8px;flex-wrap:wrap;margin-top:8px}.abs-come form{margin:0}
.abs-val{margin-top:10px}
.abs-fascia-blu,.abs-fascia-gialla{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.abs-fascia-blu{border-left:4px solid var(--blu)}.abs-fascia-gialla form{margin:0;gap:6px;flex-wrap:wrap}
.abs-uno h2{margin:4px 0 8px}
.abs-testo{white-space:normal;line-height:1.6;background:var(--soft,#F6F7FB);border-radius:10px;padding:12px 14px;margin:8px 0}
.abs-scelta{display:flex;gap:8px 14px;align-items:center;flex-wrap:wrap;margin:10px 0}.abs-scelta>span{display:flex;gap:6px;flex-wrap:wrap}
.abs-o{margin:0!important;cursor:pointer}.abs-o input{position:absolute;opacity:0;width:1px;height:1px}
.abs-o span{display:inline-flex;min-width:40px;justify-content:center;border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-weight:600;background:#fff}
.abs-o input:checked+span{background:var(--blu);border-color:var(--blu);color:#fff}.abs-o input:focus-visible+span{outline:2px solid var(--blu);outline-offset:2px}
.abs-autore{display:grid;grid-template-columns:24px 1fr 1fr 1.3fr 1fr auto;gap:6px;align-items:center;margin-bottom:6px}
.abs-autore[hidden]{display:none}.abs-n{font-weight:700;color:var(--muted)}
.abs-conto{display:block;margin-top:4px}.abs-conto.troppe{color:var(--danger,#B3261E);font-weight:700}
.abs-v-capo{margin:0 0 10px}.abs-az{gap:8px;margin-top:10px}
@media (max-width:700px){ .abs-autore{grid-template-columns:24px 1fr 1fr}.abs-autore input:nth-of-type(3),.abs-autore input:nth-of-type(4){grid-column:2 / -1}.abs-autore label{grid-column:2 / -1} }

/* ---------- 12.28 — Workshop: i relatori del workshop sono esterni (bozze/workshop-fuori-faculty, sezioni A, B, C) ---------- */
.sw-fascia{flex-direction:column;align-items:stretch}
.sw-fascia .sw-det>summary{list-style:none;display:inline-flex;cursor:pointer}
.sw-fascia .sw-det>summary::-webkit-details-marker{display:none}
.sw-fascia .sw-det[open]>summary{margin-bottom:10px}
.sw-tab,.ws-rel-tab{background:#fff;margin:6px 0}
.sw-tab td.sw-sp{width:34px;text-align:center}
.sw-nota{margin:6px 0 10px}
.ws-rel{flex-direction:column;align-items:stretch;margin:10px 0}
.ws-rel-az,.ws-avviso-az{gap:6px;flex-wrap:wrap;justify-content:flex-end}
.ws-rel-az form,.ws-avviso-az form{margin:0}
.ws-avviso{margin:2px 0 8px;font-size:var(--fs-secondario)}
@media (max-width:760px){.ws-rel-az,.ws-avviso-az{justify-content:flex-start}.sw-tab td.sw-sp{width:auto;text-align:left}}
/* ---------- 12.29 — Workshop: le email dei relatori e l'elenco a parte (bozze/workshop-fuori-faculty, sezioni D, E) ---------- */
.ws-manda{margin:12px 0 4px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#FAFBFE}
.ws-manda-tab{margin:8px 0}
.ws-m-f{margin:0;display:inline-flex;flex-direction:column;gap:6px;align-items:flex-end}
.ws-m-f textarea{width:100%;min-width:240px;margin-top:4px}
.ws-m-det>summary{list-style:none;cursor:pointer;display:inline-flex}
.ws-m-det>summary::-webkit-details-marker{display:none}
.ws-m-det[open]>summary{margin-bottom:8px}
.ws-sito-h{margin:22px 0 8px}
@media (max-width:760px){.ws-m-f{align-items:stretch;width:100%}.ws-m-f textarea{min-width:0}}

/* ---------- 12.30: dai controlli della fila 12.17-12.29 ---------- */
/* Comunicazioni (12.19): tre colonne fisse, uguali in ogni riga, come la grafica (prima ogni riga si allargava a modo suo) */
@media (min-width:901px){
  .com-r{grid-template-columns:44% 28% minmax(0,1fr)}
  .com-az{justify-content:flex-end}
}
/* Scheda del professionista (12.19): «Segreteria (in copia)» aperta prende tutta la larghezza; l'email su una riga sua */
#segr:has(.segr-riga[open]){display:block}
#segr:has(.segr-riga[open]) > td{display:block;width:auto;border:0}
#segr:has(.segr-riga[open]) > td:first-child{padding-bottom:0;font-weight:700}
.segr-modulo .g3{grid-template-columns:1fr;gap:10px}   /* i tre campi uno sotto l'altro: la colonna della scheda è stretta e l'email si leggeva a metà */
.segr-modo .riga-spunta{font-weight:400;font-size:var(--fs-piccolo,14px);line-height:1.35}
/* Controlli (12.21): «… e altre N · Vedi tutte e N» */
details.ctrl-altre > summary{cursor:pointer;color:var(--area);font-weight:600;margin:4px 0}
/* Stampe (12.23): in stampa il contenitore della pagina non lascia spazio sotto il foglio, che passava a una pagina bianca */
@media print{
  main:has(.foglio),main:has(.fe-foglio){padding:0!important;margin:0!important;min-height:0!important}
  body:has(.foglio) .wrap,body:has(.foglio) .content{padding-bottom:0!important;margin-bottom:0!important;min-height:0!important}
}

/* ---------- 12.31 — Le stampe come la grafica approvata (bozze/stampe-complete.html, terzo giro; proposta-stampe-uguali.html) ----------
   In cima il marchio izeos Konnect grande, a sinistra, con sotto la riga blu a tutta larghezza; poi titolo e sottotitolo.
   Il piede (dati dell'azienda, «Stampato il…», «pagina 1 di 2») lo scrive il margine della pagina: è nella regola
   @page di ogni foglio (fe_chiudi in app/foglio_elenco.php). Il piede dentro il foglio resta per Safari e Firefox, che i
   margini della pagina non li hanno ancora (html.fo-senza-margini, comportamenti.js «12.31»). */
@media print{
  .fe-foglio .fo-capo{display:block;border-bottom:2px solid #0A0D31;padding:0 0 10px;margin:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .fe-foglio .fo-capo .fo-marchio{display:block;font-size:0}
  .fe-foglio .fo-capo .fo-marchio table{margin:0!important;width:auto!important;display:table!important}
  .fe-foglio .fo-capo .fo-marchio td{display:table-cell!important}
  .fe-foglio>.fo-tit{font-size:18px;font-weight:700;margin-top:12px;line-height:1.3}
  .fe-foglio>.fo-sotto{font-size:12.5px;color:#444;margin:2px 0 8px}
  .fe-foglio>.fo-scelti{font-size:12px;font-weight:700;margin:0 0 6px}
  .fe-foglio .fo-sez{font-size:14px}
  .fe-foglio .fo-tab td i{font-style:italic;color:#555}
  .fe-foglio .fo-piede{display:none}
  html.fo-senza-margini .fe-foglio .fo-piede{display:block;margin-top:24px;font-size:9px;color:#555;border-top:1px solid #bbb;padding-top:6px;line-height:1.5}
}

/* ---------- 12.33: Resti dei controlli, 1 di 3 (proposta-resti-controlli.html) ---------- */
/* 1b: la fascia «Sei arrivato da Controlli» attaccata sopra la sessione; al telefono «Da Controlli» */
.prog-da-ctrl .dc-tel{display:none}
.prog-da-ctrl.attaccata{margin:0 0 8px;border-left-color:#E0B400;background:#FFF8E0}
@media (max-width:600px){
  .prog-da-ctrl .dc-pc{display:none}
  .prog-da-ctrl .dc-tel{display:inline}
  .prog-da-ctrl.attaccata{flex-direction:column;align-items:flex-start;gap:8px}
}
/* 2: Grant → Le persone, «N a posto» sotto i contatori; la riga del viaggio arrivando da un collegamento */
.gr-posto{margin:-4px 0 14px}
tr[id^="v-"]:target > td,tr[id^="p-"]:target > td{background:#FFF4C2}
/* 4a: Abstract, «Mettili nel Programma» con il posto libero nella sessione */
.abs-fascia-gialla form.abs-prog{display:grid;gap:8px;width:100%;margin-top:8px}
.abs-prog-campi{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.abs-prog-campi label{display:flex;flex-direction:column;gap:3px;margin:0}
.abs-prog-ses{flex:1 1 320px;min-width:0}
.abs-prog-ses select{width:100%}
.abs-posto{margin:0}
.abs-posto.si{color:#1C7C54;font-weight:600}
.abs-posto.no{color:#8A3B00}
.abs-nonci[hidden],.abs-metti[hidden],.abs-nonci .btn[hidden]{display:none!important}
.abs-nonci{gap:8px;flex-wrap:wrap}
@media (max-width:600px){ .abs-prog-campi{flex-direction:column;align-items:stretch} .abs-prog-ses{flex:none} .abs-nonci .btn{width:100%;justify-content:center} }
/* 6a: Stampe, le aziende in copertina senza logo per fondo scuro; Aspetto, il logo del congresso sul fondo scuro */

/* 12.34: «Gestiscili tutti» nel riquadro «Nel programma c'è: lo gestisci?» (decisione 3 dei resti dei controlli).
   Il pulsante apre la conferma sotto di sé, a tutta larghezza del riquadro */
.ws-tutti{flex-basis:100%;max-width:100%}
.ws-tutti>summary{list-style:none;display:inline-flex}
.ws-tutti>summary::-webkit-details-marker{display:none}
.ws-tutti[open]>summary{display:none}
.ws-tutti-box{background:#fff;border:1px solid #EBD3A2;border-radius:10px;padding:12px 14px;margin-top:2px}
.ws-tutti-box p{margin:6px 0 10px}
@media (min-width:601px){ .ws-tutti{flex-basis:auto} .ws-tutti[open]{flex-basis:100%} }
@media (max-width:600px){ .ws-tutti>summary{width:100%;justify-content:center} .ws-tutti-box .btn{width:100%} }

/* 12.34: la testata del sito del congresso sulle sue pagine in più («Invia il tuo abstract», punto 4b dei resti dei
   controlli): sito_testata_html() in app/sito_congresso.php. Fondo scuro e colori di «Personalizza», come il sito */
.sc-testa{color:#fff;padding:22px 16px 0}
.sc-testa .in{max-width:880px;margin:0 auto;padding:0 28px;box-sizing:border-box}   /* allineata al modulo (.ext-shell) */
.sc-logo{display:inline-block;background:#fff;border-radius:10px;padding:4px 8px;margin-bottom:12px}.sc-logo img{height:34px;display:block}
.sc-occhiello{color:#a3abcf;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.sc-titolo{font-family:"Bricolage Grotesque","Inter Tight",system-ui,sans-serif;font-weight:800;font-size:28px;line-height:1.15;margin:4px 0 6px;letter-spacing:-.01em}
.sc-dove{color:#c9cff5;font-size:15px}
.sc-schede{display:flex;gap:18px;margin-top:16px;font-size:14px;overflow-x:auto}
.sc-schede a,.sc-schede span{color:#c9cff5;text-decoration:none;padding:6px 0 10px;border-bottom:3px solid transparent;white-space:nowrap}
.sc-schede a:hover{color:#fff}
.sc-schede .on{color:#fff;font-weight:700;border-bottom-color:var(--sc-ev,#5b74ff)}
.sc-shell{max-width:880px}
.sc-capo{margin:22px 0 14px}.sc-capo h1{margin:0 0 4px;font-size:24px}
.sc-piede{border-top:1px solid var(--line,#e1e4f0);margin:22px 0 8px;padding-top:12px;color:var(--muted,#5e6788);font-size:14px}
.sc-lgo{display:inline-flex;vertical-align:middle;background:#fff;border-radius:6px;padding:2px 6px}.sc-lgo img{height:22px;display:block}
@media (max-width:600px){ .sc-testa{padding:16px 16px 0} .sc-testa .in{padding:0} .sc-titolo{font-size:20px} .sc-dove{font-size:13px} .sc-capo h1{font-size:20px} .sc-schede{gap:14px;font-size:13px} }

/* 12.34 (punto 4c dei resti dei controlli): l'elenco degli abstract al telefono è la scheda corta della grafica approvata,
   senza etichette (con 40 abstract era lunga undici schermate, e la spunta copriva «CODICE» lasciando «CE»): spunta a
   sinistra; codice e titolo sulla stessa riga; chi presenta · città · argomento; voti ed esito come pastiglia */
.abs-arg-tel{display:none}
@media (max-width:900px){
  table.tab-scheda#abs-el tr{padding:11px 12px 11px 46px}
  table.tab-scheda#abs-el td{display:inline;padding:0}
  table.tab-scheda#abs-el td[data-et]::before{display:none}
  table.tab-scheda#abs-el td.spunta{position:absolute;left:14px;top:13px}
  table.tab-scheda#abs-el td[data-et="Codice"]{color:var(--muted);margin-right:4px;font-size:var(--fs-piccolo)}
  table.tab-scheda#abs-el td[data-et="Presenta"]{display:block;margin:3px 0 4px;color:var(--muted);font-size:var(--fs-piccolo)}
  table.tab-scheda#abs-el td[data-et="Presenta"] .abs-citta,table.tab-scheda#abs-el .abs-arg-tel{display:inline;font-size:inherit}
  table.tab-scheda#abs-el td[data-et="Presenta"] .abs-citta::before,table.tab-scheda#abs-el .abs-arg-tel::before{content:" · "}
  table.tab-scheda#abs-el td[data-et="Argomento"]{display:none}
  table.tab-scheda#abs-el td[data-et="Voti"]{margin-right:6px}
  table.tab-scheda#abs-el td[data-et="Voti"] div,table.tab-scheda#abs-el td[data-et="Esito"] div{display:inline;margin-left:6px}
}

/* 12.35 (controllo della 12.21): il workshop aperto da Controlli si ferma sotto la barra del telefono, con la fascia in vista */
.ws-uno.da-controlli{scroll-margin-top:72px;border-left:3px solid #E0B400}
/* 12.35 (controllo della 12.21): ogni posto di un avviso su una riga, come la grafica (bozze/controlli-vai-giusto.html):
   prima erano due righe (titolo intero, data con l'anno, pulsante sotto) e con 71 avvisi la pagina era lunghissima */
.ctrl-posto{flex-wrap:nowrap;justify-content:flex-start}
.ctrl-posto .pill{flex:0 0 auto}
.ctrl-posto .ctrl-p-t{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.pill.ctrl-ws{background:#F2EBFA;color:#6B3FA0}
@media (max-width:600px){
  .ctrl-posto{flex-direction:row;flex-wrap:wrap;align-items:center}
  .ctrl-posto .ctrl-p-t{flex:1 1 0}
  .ctrl-posto .btn{flex:1 0 100%}
}
/* 12.35 (controllo della 12.23): stampando il Programma con ⌘P restavano «+ Aggiungi un intervento», «Vedi la sua
   pagina» e la pastiglia «81 sovrapposizioni»: sulla carta non si premono */
@media print{
  main .ses-l-piede a[data-al-clic],main .vp-vedi,main .vp-no,main .vp-riga,main .chip-manca,main .vp-chip{display:none!important}
}
/* 12.35 (controllo della 12.23): nel foglio «Per noi» la colonna «Chi» era stretta e i nomi andavano su quattro o cinque
   righe, mentre «Camera» e «Stato» avevano spazio vuoto: «Chi» più larga, le altre quanto serve */
@media print{
  .fe-foglio .fo-noi td:nth-child(1){width:31%}
  .fe-foglio .fo-noi td:nth-child(4){width:4%}
  .fe-foglio .fo-noi td:nth-child(5){width:10%}.fe-foglio .fo-noi td:nth-child(6){width:9%}
}
/* 12.35 (controllo della 12.24): con un nome lungo («De Santis Lombardini Giovanni Battista») la casella restava sola su
   una riga: casella e testo affiancati, va a capo solo il testo */
.ct-pc-lista label.ct-pc{flex-wrap:nowrap;align-items:flex-start}
.ct-pc-lista .ct-pc .ct-pc-t{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;line-height:1.35;padding-top:1px}
/* 12.35 (decisione 4 di Pietro, 18/10; proposta-resti/domanda-4.html, A): le sfumature si toccano e si cambiano a mano */
/* 12.35 (controllo della 12.25): il codice accanto al colore; «Informazioni» si apre come una riga (chiusa al telefono) */
/* 12.35 (controllo della 12.26): «Colore principale» nascosto finché la tavolozza non è «Dal colore del logo» */
label#sito-c1[hidden]{display:none!important}
.sp-senza-foto{margin-top:6px}
/* 12.35 (controllo della 12.22): a 1300 px la tabella dei Pernottamenti usciva a destra («Salva» e mezzo «Stato» fuori,
   la pagina scorreva di lato). Fra il telefono e lo schermo grande le colonne si stringono, come in Viaggi */
@media (min-width:701px) and (max-width:1500px){
  .pag-pernotti table.pern td,.pag-pernotti table.pern th{padding:8px 3px}
  .pag-pernotti table.pern input[type=date]{width:112px;min-width:0;padding-left:6px;padding-right:2px;font-size:var(--fs-piccolo)}
  .pag-pernotti table.pern td:nth-child(5),.pag-pernotti table.pern th:nth-child(5){width:38px;text-align:center}
  .pag-pernotti table.pern textarea{width:110px;min-width:0}
  .pag-pernotti table.pern input:not([type=date]):not([type=hidden]){min-width:0;max-width:76px}
  .pag-pernotti table.pern .stati-pern .btn,.pag-pernotti table.pern .stati-pern button{padding:4px 8px}
  .pag-pernotti .tab-scorri{overflow-x:auto}   /* sotto i 1300 px scorre dentro il riquadro, come Viaggi: mai la pagina */
}
@media (max-width:600px){
}
/* il testo su una riga non deve allargare l'avviso oltre lo schermo (al telefono usciva di lato) */
.ctrl-voce .c,.ctrl-posti,.ctrl-posto{min-width:0;max-width:100%}
/* il testo della sfumatura prende il colore della sua etichetta (bianco sulla Plenaria, scuro sulle altre), come nel libretto */

/* 12.36: «Alberghi di questo evento» in Pernottamenti, il numero di conferma uno per albergo */
.pn-conf .pn-conf-riga{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--line,#e3e7ee)}
.pn-conf .pn-conf-riga:first-of-type{border-top:0}
.pn-conf .pn-conf-nome{flex:1 1 240px;min-width:0}
.pn-conf .pn-conf-mod{display:flex;align-items:center;gap:8px;margin:0}
.pn-conf .pn-conf-mod label{display:flex;align-items:center;gap:8px;margin:0;font-weight:400;white-space:nowrap}
.pn-conf .pn-conf-mod input{width:160px;margin:0}
@media (max-width:640px){
  .pn-conf .pn-conf-riga{display:block}
  .pn-conf .pn-conf-mod{margin-top:6px;align-items:flex-end}
  .pn-conf .pn-conf-mod label{display:block;flex:1;white-space:normal}
  .pn-conf .pn-conf-mod input{width:100%;margin-top:3px}
}
/* 12.37: lo slide kit del congresso nella Scheda, sotto «Documenti da caricare» (bozze/slidekit/domanda-1-scheda.html) */
.ct-r:has(.sk-box){align-items:flex-start}
/* segue la levetta com'è adesso, come .ct-quando.si (lì sopra), senza essere una delle frasi della voce */
.ct-r.spento .sk-box{display:none}
@supports selector(:has(a)){.ct-r:has(.ct-int input:checked) .sk-box{display:block}.ct-r:has(.ct-int input:not(:checked)) .sk-box{display:none}}
.sk-box{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.sk-box.manca{border-color:#EAD3A0;background:#fff}
.sk-box .sk-testa{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.sk-box .sk-azioni{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;margin-top:8px}
.sk-box .sk-sost>summary{list-style:none}.sk-box .sk-sost>summary::-webkit-details-marker{display:none}
.sk-box .sk-sost[open]>summary{background:var(--blu-soft);border-color:var(--blu)}
.sk-box .sk-sost-campi{display:none}.sk-box:has(.sk-sost[open]) .sk-sost-campi{display:flex}
.sk-box .sk-campi{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.sk-box .sk-campi input[type=url]{flex:1 1 220px;min-width:0}
.sk-box .sk-campi input[type=file]{max-width:100%}
.sk-box .sk-nota{margin-top:6px}
@media (max-width:700px){.sk-box .sk-campi input[type=url]{flex-basis:100%}}

/* 12.38 — Ruoli e permessi: ogni funzione con le sue sottofunzioni (app/pages/ruoli.php) */
table.rp tbody.rp-con.chiusa tr.rp-sez{display:none}
table.rp .rp-apri{all:unset;cursor:pointer;display:inline-flex;gap:6px;align-items:baseline}
table.rp .rp-apri:focus-visible{outline:2px solid var(--blu);outline-offset:2px;border-radius:4px}
table.rp .rp-freccia{display:inline-block;color:var(--blu);transition:transform .15s}
table.rp tbody.rp-con:not(.chiusa) .rp-freccia{transform:rotate(90deg)}
table.rp tr.rp-padre td{background:#FAFBFE}
table.rp tr.rp-padre td.rp-mod-col{background:#FAFBFE}
.rp-conta{display:inline-block;font-size:var(--fs-micro);font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap}
.rp-conta.tutte{background:var(--ok-soft);color:var(--ok)}
.rp-conta.parte{background:var(--warn-soft);color:#8a5a00}
.rp-conta.nessuna{background:#EEF1F8;color:var(--muted)}
.rp-del{display:inline-block;font-size:11px;font-weight:700;color:var(--danger,#b3261e);border:1px solid #f0b8b3;border-radius:6px;padding:0 5px;margin-left:4px;vertical-align:1px}
.rp-attrezzi{justify-content:flex-end;gap:10px;margin-bottom:8px}
.rp-scegli{display:none;align-items:center;gap:8px;font-weight:600;flex:1}
.rp-scegli select{flex:1;min-width:0}
.rp-salvavita ul{margin:0;padding-left:20px}.rp-salvavita li{margin:3px 0}
@media (max-width:760px){
  .rp-scegli{display:flex}
  table.rp{min-width:0}
  table.rp .rp-nasc{display:none}
  table.rp th.rp-mod-col,table.rp td.rp-mod-col{position:static;min-width:0;max-width:none}
  table.rp td.rp-c{width:1%}
  tr.rp-sez td.rp-mod-col{padding-left:18px}
}

/* 12.41: «Esci» è un modulo (si esce solo in POST): il pulsante ha la veste di prima */
form.esci-f{display:inline;margin:0}
.utente-azioni form.esci-f{display:block}
.utente-azioni button.esci{display:block;width:100%;text-align:left;background:none;border:0;cursor:pointer;
  font:inherit;padding:8px 10px;border-radius:8px;font-size:var(--fs-secondario);color:#F2A9A9}
.utente-azioni button.esci:hover{background:rgba(214,73,73,.22);color:#fff}
@media (max-width:700px){.utente-azioni button.esci{padding:11px 10px;font-size:var(--fs-testo-s)}}
button.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--blu);text-decoration:underline;cursor:pointer}
/* 12.43: «PEC arrivate» nella pagina Grant */
.gr-kpi-sub{font-weight:400;text-transform:none;letter-spacing:0}
.gr-pin-testa{justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.gr-pin-testo{white-space:normal;overflow-wrap:anywhere;max-height:360px;overflow:auto;background:var(--bg,#f6f7f9);border-radius:10px;padding:10px 12px}
.gr-pin-r{margin-top:8px;overflow-wrap:anywhere}
.gr-pin-el td[data-et="Oggetto"]{overflow-wrap:anywhere}
.gr-pin-parte{margin:0 0 8px}
@media (min-width:1100px){.gr-kpi{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.gr-kpi .kpi{padding:14px 14px}}
.gr-kpi-pec .gr-kpi-sub{display:block}

/* 12.44 — Grant: email o PEC, si vede e si cambia (grafica proposta-grant-email-o-pec.html) */
button.mini-link{background:none;border:0;padding:0;cursor:pointer;font-family:inherit;text-align:left}
button.mini-link:hover,a.mini-link:hover{text-decoration:underline}
.gr-riq .gr-a{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;overflow-wrap:anywhere}
.gr-riq .gr-a + .gr-a{margin-top:4px}
.gr-riq .gr-cambia{display:inline;margin:0}
.gr-elenco .gr-come{margin-top:3px}
.gr-riq .gr-come-r{margin:0 0 14px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.gr-riq .gr-conf{border:1.5px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:0 0 16px;background:var(--soft)}
.gr-riq .gr-conf h4{margin-top:0}
.gr-riq .gr-conf .check{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0}
.ente-storia{margin-top:12px} .ente-storia .st-linea{margin-top:6px}
.ente-pec-nota{margin-top:4px;color:#7a4e0c} .ente-sposta{display:inline;margin:0 0 0 6px}

/* 12.47: «Link alla sua pagina» non ha la copia alla segreteria (la copia esce senza collegamenti: resterebbe vuota) */
.form-scrivi.senza-segr .achi-segr{display:none}

/* 12.48 — Attestati: la scelta delle date prima di stampare, e il giorno accanto al nome */
.att-date{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.att-date>b{display:block;margin-bottom:6px}
.att-date label{display:block;padding:4px 0;font-weight:400;cursor:pointer}
.att-date input{margin-right:6px}
.att-p .att-giorno{font-size:12px}

/* 12.49: Società scientifiche → «Utenti della società»: i due modi di aggiungere, e la pastiglia che porta alla scheda */
.soc-agg details.scrivile{flex:0 1 auto}.soc-agg details.scrivile[open]{flex:1 1 100%}
a.pill.soc-prof{text-decoration:none;margin-left:6px;font-weight:600}a.pill.soc-prof:hover{text-decoration:underline}
.soc-entra{margin-top:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.soc-entra .btn{margin-top:6px}
#utenti-societa .pill{white-space:nowrap}

/* ---------- 12.50 · Spazio espositivo: la pianta con gli stand (pages/_sponsor_espositivo.php) ---------- */
.ex-testa{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.ex-conti{font-size:var(--fs-testo-s);color:var(--muted)}.ex-conti b{color:var(--ink);font-family:Montserrat,sans-serif}
.ex-azioni{gap:8px;flex-wrap:wrap;margin:0;align-items:center}
.ex-vista{display:none}
.ex-solo-tel{display:none}
.ex-due{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.ex-sx{min-width:0;display:grid;gap:16px}
.ex-sx>.panel{margin:0}
.ex-strumenti{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.ex-strumenti .btn{min-width:40px;padding-left:10px;padding-right:10px}
.ex-scorri{overflow:auto;max-height:72vh;border:1px solid var(--line);border-radius:10px;background:#fff;touch-action:pan-x pan-y;overscroll-behavior:contain}
.ex-zoom{transform-origin:0 0;display:block}
.ex-pianta{position:relative;display:block;line-height:0;min-height:40px}
.ex-img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none;pointer-events:none}
.ex-stand{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:2px solid #B3B8CC;border-radius:5px;background:rgba(255,255,255,.92);color:var(--ink);text-decoration:none;font-size:11px;line-height:1.15;padding:2px;box-sizing:border-box;overflow:hidden;text-align:center;touch-action:none;cursor:pointer}
.ex-stand b{font-family:Montserrat,sans-serif;font-size:12px;white-space:nowrap}
.ex-stand i{font-style:normal;font-size:10px;color:#3A4262;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-stand.st-opzionato,.ex-legenda i.st-opzionato{background:var(--warn-soft);border-color:#E0A03A}
.ex-stand.st-venduto,.ex-legenda i.st-venduto{background:var(--ok-soft);border-color:var(--ok)}
.ex-stand.st-riservato,.ex-legenda i.st-riservato{background:#EEE6FA;border-color:#8E5BD9}
.ex-legenda i.st-libero{background:#fff;border-color:#B3B8CC}
.ex-stand.sel{box-shadow:0 0 0 3px var(--blu);z-index:2}
.ex-stand.firmato b::after{content:" \2713";color:var(--ok)}
.ex-stand.ex-errore{border-style:dashed;border-color:var(--danger)}
.ex-stand:hover{z-index:3;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.ex-h{position:absolute;right:0;bottom:0;width:14px;height:14px;border-right:3px solid currentColor;border-bottom:3px solid currentColor;cursor:nwse-resize;opacity:.55;border-bottom-right-radius:3px}
.ex-vuota{position:absolute;left:0;right:0;top:40%;text-align:center;font-size:var(--fs-testo-s);line-height:1.4;color:var(--muted);background:rgba(255,255,255,.8);padding:10px;pointer-events:none}
.ex-pianta.senza{display:flex;flex-wrap:wrap;gap:8px;padding:10px;line-height:1.2;min-height:60px}
.ex-pianta.senza .ex-stand{position:static;width:96px;height:66px;flex:none}
.ex-legenda{display:flex;gap:14px;flex-wrap:wrap;font-size:var(--fs-piccolo);color:var(--muted);margin-top:8px}
.ex-legenda span{display:inline-flex;align-items:center;gap:6px}.ex-legenda i{width:14px;height:14px;border-radius:4px;border:2px solid;display:inline-block}
.ex-pianta-strumenti{display:flex;gap:10px 18px;flex-wrap:wrap;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.ex-pianta-strumenti form{margin:0;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ex-pianta-strumenti input[type=file]{max-width:220px;font-size:var(--fs-piccolo)}
.ex-mis{display:inline-flex;gap:6px;align-items:center}.ex-mis input{width:64px}
.ex-elenco input[type=search]{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:10px;font-size:var(--fs-testo-s);margin-bottom:10px}
.ex-tab tr[data-vai]{cursor:pointer}.ex-tab tr.sel td{background:var(--blu-soft)}.ex-tab tr[hidden]{display:none}
.ex-scheda{position:sticky;top:12px;margin:0}
.ex-scheda h3{margin:0 0 10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-titoletto)}
.ex-riga{display:grid;grid-template-columns:96px minmax(0,1fr);gap:4px 10px;padding:7px 0;border-top:1px solid var(--line);font-size:var(--fs-testo-s);line-height:1.45}
.ex-riga>span:first-child{color:var(--muted);font-size:var(--fs-piccolo);padding-top:2px}
.ex-riga ul{margin:0;padding-left:16px}
.ex-nota{background:var(--soft);border-radius:7px;padding:6px 8px;display:block}
.ex-form{margin-top:10px;padding-top:6px;border-top:1px solid var(--line)}
.ex-form .ex-mis input{width:70px}
.ex-scelta{margin:0 0 10px}.ex-scelta>b{display:block;margin-bottom:6px;font-size:var(--fs-testo-s)}
.ex-chips{display:flex;flex-wrap:wrap;gap:6px}
.ex-chips .sp-o{position:relative}
.ex-conto{display:block;margin-top:6px;font-size:var(--fs-piccolo);color:var(--muted)}
.ex-piu{margin-top:6px;font-size:var(--fs-piccolo)}.ex-piu summary{cursor:pointer;color:var(--blu)}.ex-piu .ex-chips{margin-top:6px}
@media (max-width:900px){
  .ex-due{grid-template-columns:1fr}.ex-scheda{position:static}.ex-vista{display:inline-flex}.ex-solo-tel{display:inline}
  .ex-sx>[hidden]{display:none}
  .ex-scorri{max-height:60vh}
  .ex-riga{grid-template-columns:1fr}.ex-riga>span:first-child{padding-top:0}
  .ex-pianta-strumenti{flex-direction:column;align-items:stretch}.ex-pianta-strumenti input[type=file]{max-width:100%}
  .ex-pianta-strumenti .btn,.ex-form .btn{width:100%}
}

/* 12.51 — «Rivedi la PEC» nel riquadro dei grant: il riquadro di conferma a tutta larghezza, anche dentro una fila di pulsanti */
.gr-riq .gr-rivedi{flex:1 1 100%;min-width:0;margin:0}
.gr-riq .gr-rv-testo{width:100%;max-width:100%;font-family:inherit;font-size:14px;line-height:1.45}
.gr-riq .gr-rv-fisso{margin:-6px 0 4px}
.gr-riq .gr-rivedi .mini-link{align-self:center}
@media (max-width:700px){
  .gr-riq .gr-rv-testo{font-size:16px}
  .gr-riq .gr-rivedi .row .btn{flex:1 1 auto;text-align:center}
}

/* 12.52 — milestone «Mista»: i tre pulsanti attaccati delle presenze (come .seg pn-seg della notte prima). I colori delle
   risposte: verde «In presenza», blu «Da remoto», rosso «Non c'è». Al telefono la colonna «Come partecipa» va sotto il nome. */
.pres-seg{margin:0;flex-wrap:nowrap}
.pres-seg span{padding:7px 12px;white-space:nowrap}
.pres-seg .pres-presenza input:checked+span{background:var(--ok,#1d6b3a)}
.pres-seg .pres-remoto input:checked+span{background:var(--accent,#0a14c8)}
.pres-seg .pres-no input:checked+span{background:var(--danger,#b42318)}
.pres-pan input.cel:disabled{background:#f1f3f6;color:var(--muted,#6b7280)}
.pres-conto{margin:10px 0 0;color:var(--muted,#6b7280)}.pres-conto b{color:var(--ink,#1c2033)}
@media (max-width:760px){
  .pres-mista table tr:first-child{display:none}
  .pres-mista table,.pres-mista table tbody{display:block!important;width:100%}
  .pres-mista table tr.pres-riga{display:grid!important;grid-template-columns:1fr 84px;gap:6px 10px;padding:10px 0;border-bottom:1px solid var(--line)}
  .pres-mista table tr.pres-riga td{display:block;padding:0;border:0;min-width:0!important;width:auto!important}
  .pres-mista table tr.pres-riga td.pres-come{grid-column:1 / -1;grid-row:2}
  .pres-mista .pres-seg{display:flex;width:100%}.pres-mista .pres-seg label{flex:1;text-align:center}
  .pres-mista .pres-seg span{padding:9px 4px}
}
/* 12.52 — «Convocazione e viaggi» di una milestone mista: la casella del link e il riquadro «Non ci sono» */
.bv-link-f{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin:0}
.bv-link-f label{flex:1 1 320px;margin:0}
.bv-link-manda{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.bv-link-manda form{margin:0}
.bv-nc-lista{list-style:none;margin:0;padding:0}
.bv-nc-lista li{display:flex;gap:6px 12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:9px 0;border-bottom:1px solid var(--line)}
.bv-nc-lista li:last-child{border-bottom:0}
.bv-nc-lista .chi{display:flex;gap:4px 10px;align-items:baseline;flex-wrap:wrap}
.bv-nc-lista form{margin:0}
@media (max-width:700px){.bv-link-f .btn{flex:1 1 100%}.bv-nc-lista li{align-items:flex-start}.bv-nc-lista li form,.bv-nc-lista li form .btn{width:100%}}
@media (max-width:760px){.pres-mista table tr.pres-riga td.pres-ruolo{display:none}}

/* =====================================================================
   12.55 · Il foglio del business plan rifatto (grafica approvata da Pietro
   il 20/10/2026, proposta-budget-grafica/proposta.html). In fondo al foglio
   perché deve vincere sulle regole generali delle tabelle e dei campi.
   Griglia leggera fra le celle: c'è solo qui, voluto (è un foglio di conti
   e Pietro vuole che resti vicino a Excel).
   ===================================================================== */
.bp-stat{margin-bottom:16px}
.bp-barra{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:26px 0 10px;position:relative}
.bp-barra h2{margin:0 6px 0 0}
.bp-cerca input{border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 12px;font-size:var(--fs-secondario);width:220px;height:auto}
.bp-pillole{display:flex;gap:6px;flex-wrap:wrap}
.bp-pill{border:1px solid var(--line);background:#fff;border-radius:99px;padding:5px 12px;font-size:13px;color:var(--muted);cursor:pointer;font-family:inherit}
.bp-pill b{font-weight:700;margin-left:2px}
.bp-pill.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.bp-salva{font-size:var(--fs-piccolo);color:var(--muted)}
.bp-salva.male{color:var(--danger);font-weight:600}
.bp-strumenti{margin-left:auto}
.bp-strumenti>summary{list-style:none;cursor:pointer}
.bp-strumenti>summary::-webkit-details-marker{display:none}
.bp-str-pan{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;background:#fff;border:1px solid var(--line);
  border-radius:14px;box-shadow:0 12px 30px rgba(10,13,49,.14);padding:16px}
.bp-str-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.bp-str{display:flex;flex-direction:column;gap:6px;margin:0}
.bp-str .row{gap:6px;flex-wrap:nowrap}
.bp-str input,.bp-str select{min-width:0;flex:1}
.bp-col{display:flex;justify-content:space-between;align-items:center;margin:0;font-size:var(--fs-secondario)}
.bp-col .x{border:0;background:transparent;color:#B5BBCF;font-size:18px;cursor:pointer}
.bp-col .x:hover{color:var(--danger)}
.bp-str-pan #importa{margin:14px 0 0}
.bp-filtro-vuoto{margin:0 0 8px}

/* la tabella */
.bp-foglio-n{background:#fff;border:1px solid var(--line);border-radius:14px;overflow-x:auto}
table.bpx{width:100%;border-collapse:collapse;font-size:13.5px;min-width:980px}
table.bpx th{font:600 11.5px Inter,sans-serif;color:var(--muted);text-align:right;padding:10px 8px 9px;border-bottom:1px solid var(--line);
  white-space:nowrap;background:#fff;letter-spacing:0;text-transform:none}
table.bpx th.l{text-align:left}
table.bpx td{padding:0 2px;border-bottom:1px solid #EDEFF5;border-right:1px solid #EDEFF5;text-align:right;vertical-align:middle;
  font-variant-numeric:tabular-nums;height:36px}
table.bpx td:last-child{border-right:0}
table.bpx th.bp-calc,table.bpx td.bp-calc{background:#F6F7FB}
table.bpx td.bp-calc{padding:0 10px;font-weight:500;white-space:nowrap;font-family:'Inter Tight',Inter,sans-serif}
table.bpx th.bp-c-voce{width:26%}
table.bpx th.bp-c-n{width:64px}
table.bpx th.bp-c-menu,table.bpx td.bp-c-menu{width:34px;text-align:center;padding:0}
table.bpx td.bp-c-voce{text-align:left;padding-left:6px;white-space:nowrap}
table.bpx td.bp-c-voce .cel.testo{display:inline-block;width:calc(100% - 22px);vertical-align:middle}
table.bpx td.bp-c-forn{text-align:left;white-space:nowrap}
table.bpx td.bp-c-forn .cel{display:inline-block;width:calc(100% - 18px)}
table.bpx .cel{border:1px solid transparent;background:transparent;border-radius:5px;padding:6px 8px;height:auto;min-height:0;font-size:13.5px;color:var(--ink);box-shadow:none}
table.bpx .cel:hover{border-color:var(--line);background:#fff}
table.bpx .cel:focus{border-color:var(--blu);background:#fff;outline:0;box-shadow:0 0 0 2px rgba(6,14,208,.12)}
table.bpx .cel.num{text-align:right;font-family:'Inter Tight',Inter,sans-serif;min-width:96px}
table.bpx .cel.num.stretta{min-width:60px}
table.bpx .cel.piccola{font-size:13px;color:var(--ink)}
table.bpx .cel.data{width:112px;color:var(--muted);text-align:right}
table.bpx .cel::placeholder{color:#9AA1B8;font-style:italic;opacity:1}
table.bpx tr.bp-nuova .cel::placeholder{font-style:normal}
table.bpx .bp-leggi{display:block;padding:6px 8px}
table.bpx .bp-leggi.data{color:var(--muted);white-space:nowrap}
table.bpx .bp-voce-t{font-weight:500}
.bp-man{display:inline-block;width:16px;color:#C9CEDE;font-size:12px;letter-spacing:-2px;cursor:grab;user-select:none;vertical-align:middle}
.bp-man.vuota{cursor:default}
.bp-nota{display:inline-block;font-size:11px;background:var(--warn-soft);color:var(--warn);border-radius:5px;padding:0 5px;margin-left:4px;font-weight:600;vertical-align:middle}
.bp-nota[hidden]{display:none}
.bp-fl{font-size:12px;margin-left:2px;color:var(--muted)}
.bp-fl:hover{color:var(--blu)}
.bp-daq{font-size:11px;font-weight:600;color:var(--warn);background:var(--warn-soft);padding:2px 8px;border-radius:99px;white-space:nowrap}
.bp-compreso{font-size:12px;color:var(--muted);font-style:italic}
.bp-mu{display:inline-flex;gap:6px;align-items:baseline;justify-content:flex-end}
.bp-mu b{font-weight:600}
.bp-mu.ok b{color:var(--ok)}.bp-mu.no b{color:var(--danger)}
.bp-pc{font-size:11px;font-weight:600;padding:1px 7px;border-radius:99px;background:var(--soft);color:var(--muted)}
.bp-pc.ok{background:var(--ok-soft);color:var(--ok)}.bp-pc.no{background:var(--danger-soft);color:var(--danger)}
table.bpx tr.bp-r:hover td{background:#F5F7FE}
table.bpx tr.bp-r:hover td.bp-calc{background:#EEF1FA}
table.bpx tr.bp-trascino td{opacity:.45}
tbody.bp-sb.bp-trascino{opacity:.45}

/* la sezione */
table.bpx tr.bp-sez td{background:#fff;padding:14px 8px 8px;border-bottom:1px solid var(--line);border-right:0;text-align:left;height:auto}
.bp-fr{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;padding:0 4px 0 0;width:18px}
.bp-sez-nome{font:700 14.5px Montserrat,sans-serif}
.bp-sez-cnt,.bp-sez-chiusa{color:var(--muted);font-size:12.5px;margin-left:8px}
.bp-sez-chiusa{display:none}
tbody.chiusa .bp-sez-cnt{display:none}
tbody.chiusa .bp-sez-chiusa{display:inline}
tbody.chiusa .bp-sez-nome{color:var(--muted)}
tbody.chiusa tr.bp-r,tbody.chiusa tr.bp-st,tbody.chiusa tr.bp-agg,tbody.chiusa tr.bp-nuova{display:none}
tbody.bp-filtrata tr.bp-agg{display:none}
/* il totale della sezione: in fondo, come nel foglio; si vede ma non grida (novità 1) */
table.bpx tr.bp-st td{border-top:1.5px solid var(--navy);border-bottom:0;border-right:0;background:#F3F5FC;font-weight:700;padding:9px 10px;height:auto}
table.bpx tr.bp-st td:first-child{text-align:left;font-size:13px}
table.bpx tr.bp-st td.bp-calc{background:#EAEEF8}
table.bpx tr.bp-st[hidden]{display:none}
table.bpx tr.bp-agg td{padding:7px 12px 16px;border-right:0;text-align:left;border-bottom:0;height:auto}
.bp-agg-a{font-weight:600;font-size:13px}
.bp-tasti{color:#9AA1B8;font-size:12px;margin-left:12px}
table.bpx tr.bp-nuova[hidden]{display:none}
table.bpx tr.bp-nuova td{background:#FAFBFE}
table.bpx tr.bp-nuova .cel{border:1px dashed #D7DDEE;background:#fff}
table.bpx tfoot tr.bp-gran td{background:var(--navy);color:#fff;font-weight:700;padding:12px 10px;border:0;font-family:'Inter Tight',Inter,sans-serif;height:auto}
table.bpx tfoot tr.bp-gran td:first-child{text-align:left;font-family:Montserrat,sans-serif;font-size:13px}
table.bpx tfoot tr.bp-gran td.bp-calc{background:#151A4A}
table.bpx tfoot tr.bp-gran .bp-mu b{color:#fff}

/* il «?» accanto al titolo di colonna */
.bp-q{position:relative;display:inline-flex;width:14px;height:14px;border-radius:50%;border:1px solid #C3C8D8;font-size:9.5px;
  align-items:center;justify-content:center;margin-left:4px;color:#9AA1B8;cursor:help;vertical-align:1px}
.bp-q:hover::after,.bp-q:focus::after{content:attr(data-tip);position:absolute;top:20px;right:-8px;z-index:20;width:240px;white-space:normal;
  background:var(--navy);color:#fff;font:400 12.5px/1.4 Inter,sans-serif;text-align:left;padding:8px 10px;border-radius:8px}

/* il menu «⋯» */
details.bp-menu{position:relative;display:inline-block}
details.bp-menu>summary{list-style:none;cursor:pointer;color:#B5BBCF;font-weight:700;padding:4px 8px;border-radius:6px}
details.bp-menu>summary::-webkit-details-marker{display:none}
tr.bp-r:hover details.bp-menu>summary,details.bp-menu[open]>summary{color:var(--navy);background:var(--soft)}
.bp-menu-in{position:absolute;right:0;top:calc(100% + 4px);z-index:25;background:#fff;border:1px solid var(--line);border-radius:12px;
  box-shadow:0 12px 30px rgba(10,13,49,.16);padding:6px;width:240px;text-align:left;font-size:13.5px}
.bp-menu-in>a,.bp-menu-in>button,.bp-sotto>summary,.bp-sotto>button{display:block;width:100%;text-align:left;padding:7px 10px;border:0;
  border-radius:8px;background:transparent;color:var(--ink);font:inherit;cursor:pointer;font-weight:400}
.bp-menu-in>a:hover,.bp-menu-in>button:hover,.bp-sotto>summary:hover,.bp-sotto>button:hover{background:var(--soft)}
.bp-sotto>summary{list-style:none}
.bp-sotto>summary::-webkit-details-marker{display:none}
.bp-sotto>button{padding-left:22px;color:var(--muted)}
.bp-menu-in .ros{color:var(--danger)}
.bp-menu-in hr{border:0;border-top:1px solid var(--line);margin:4px 0}
.bp-menu-in p{margin:4px 10px 6px}
.bp-menu-sez{float:right}
.bp-rinomina{display:flex;flex-direction:column;gap:6px;padding:6px 10px 8px}
.bp-rinomina label{margin:0}

/* «Voce tolta · Annulla» */
.bp-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;display:flex;gap:14px;align-items:center;
  background:var(--navy);color:#fff;border-radius:12px;padding:10px 16px;font-size:13.5px;box-shadow:0 12px 30px rgba(10,13,49,.25);transition:opacity .5s}
.bp-toast.via{opacity:0}
.bp-toast[hidden]{display:none}
.bp-toast form{margin:0}
.bp-annulla{border:0;background:transparent;color:#AEB4FF;font-weight:700;cursor:pointer;font:inherit;font-weight:700}

/* «Quando escono i soldi» */
.bp-quando{margin-top:14px}
.bp-quando h3{margin-top:0}
.bp-mesi{display:grid;gap:7px;margin-top:10px}
.bp-mese{display:grid;grid-template-columns:120px 1fr 110px;gap:10px;align-items:center;font-size:13.5px}
.bp-mese b{text-align:right;font-variant-numeric:tabular-nums}
.bp-mese-barra{height:10px;border-radius:99px;background:var(--soft);overflow:hidden}
.bp-mese-barra i{display:block;height:100%;background:var(--blu);border-radius:99px}
.bp-mese.senza{color:var(--warn)}

/* la scheda della voce: a destra al computer, tutta la pagina al telefono */
.bp-velo{position:fixed;inset:0;background:rgba(10,13,49,.28);z-index:70}
.bp-scheda{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100%;z-index:71;background:#fff;overflow-y:auto;padding:18px 20px 30px;
  box-shadow:-12px 0 30px rgba(10,13,49,.14)}
.bp-scheda-t h3{margin:6px 0 2px}
.bp-indietro{font-size:var(--fs-secondario);font-weight:600}
.bp-scheda-f{margin-top:12px}
.bp-scheda .g2{gap:10px}
.bp-calcbox{background:#F6F7FB;border-radius:10px;padding:10px 12px;margin-top:12px;font-size:13.5px;display:grid;grid-template-columns:1fr auto;gap:4px}
.bp-calcbox b{font-variant-numeric:tabular-nums}
.bp-scheda-az{margin-top:14px;gap:8px}
.bp-scheda-altro{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.bp-scheda-altro form{margin:0}
.bp-solo-se{margin:6px 0}
.bp-solo-se summary{cursor:pointer;color:var(--muted)}
.bp-dl{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;margin:14px 0 0}
.bp-dl dt{color:var(--muted);font-size:var(--fs-piccolo)}
.bp-dl dd{margin:0}

/* al telefono: le voci a righe (novità del telefono) */
.bp-tel{display:none}
@media (max-width:760px){
  .bp-foglio-n{display:none}
  .bp-tel{display:block}
  .bp-barra{gap:8px}
  .bp-cerca,.bp-cerca input{width:100%}
  .bp-pillole{flex-wrap:nowrap;overflow-x:auto;width:100%;padding-bottom:2px}
  .bp-pill{white-space:nowrap;font-size:12px;padding:5px 10px}
  .bp-strumenti{margin-left:0}
  .bp-str-g{grid-template-columns:1fr}
  .bp-str-pan{position:static;margin-top:8px}
  .bp-strumenti[open]{width:100%}
  .bp-ts{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:10px;overflow:hidden}
  .bp-ts>summary{list-style:none;padding:12px;display:flex;justify-content:space-between;align-items:baseline;gap:8px;cursor:pointer}
  .bp-ts>summary::-webkit-details-marker{display:none}
  .bp-ts>summary b{font:700 14px Montserrat,sans-serif}
  .bp-ts-s{font-size:12px;color:var(--muted);text-align:right}
  .bp-ts-s .chiusa{display:none}
  .bp-ts:not([open]) .bp-ts-s .aperta{display:none}
  .bp-ts:not([open]) .bp-ts-s .chiusa{display:inline}
  .bp-ts:not([open])>summary b{color:var(--muted)}
  .bp-tr{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-top:1px solid #EDEFF5;color:var(--ink);font-size:14px;min-height:44px}
  .bp-tr-nome{font-weight:500;min-width:0}
  .bp-ts-sub{display:block;font-size:12px;color:var(--muted);font-weight:400}
  .bp-tr-v{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
  .bp-ts-tot{display:flex;justify-content:space-between;padding:10px 12px;border-top:1.5px solid var(--navy);background:#F3F5FC;font-size:14px}
  .bp-ts-agg{display:block;padding:11px 12px;border-top:1px solid #EDEFF5;font-weight:600;font-size:14px}
  .bp-ts-gran{display:flex;justify-content:space-between;background:var(--navy);color:#fff;border-radius:12px;padding:12px;font-weight:700;margin-bottom:6px}
  .bp-mese{grid-template-columns:96px 1fr 92px;font-size:13px}
  .bp-scheda{width:100%;padding:14px 16px 30px}
  .bp-scheda input,.bp-scheda select,.bp-scheda textarea{font-size:16px}
  .bp-toast{left:12px;right:12px;transform:none;bottom:12px}
}
@media (min-width:761px) and (max-width:1100px){ .bp-str-g{grid-template-columns:1fr 1fr} }
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
table.bpx tr.bp-sez td{text-transform:none;letter-spacing:0;color:var(--ink);font-family:Inter,sans-serif;font-size:13.5px;font-weight:400}
table.bpx th.bp-c-forn{min-width:150px}
table.bpx td.bp-c-forn{min-width:150px}
table.bpx th:nth-child(2){min-width:150px}
tbody.bp-altre td{padding:12px 12px 16px;text-align:left;border-right:0;height:auto;border-bottom:0}
.bp-altre-t{color:var(--muted);font-size:12.5px;margin-right:8px}
.bp-altre-a{display:inline-block;font-weight:600;font-size:13px;margin:2px 14px 2px 0}
.bp-altre-tel{padding:4px 2px 12px}

/* 12.56: Ruoli e permessi, riquadro «Società scientifica» (proposta-societa-solo-programma, domanda 2) */
.soc-lev-t{width:100%;border-collapse:collapse}
.soc-lev-t td{padding:10px 8px;border-top:1px solid var(--line);vertical-align:middle}
.soc-lev-t td:last-child{text-align:right;white-space:nowrap}
.soc-lev-seg label{padding:7px 14px;font-size:var(--fs-piccolo);font-weight:600;cursor:pointer;margin:0}
.soc-lev-seg label+label{border-left:1px solid var(--line)}
.soc-lev-seg label:has(input:checked){background:var(--accent,#0a14c8);color:#fff}
.soc-lev-seg input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.soc-lev-seg label:has(input:focus-visible){outline:2px solid var(--accent,#0a14c8);outline-offset:-2px}
.soc-sw{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-piccolo);font-weight:600;cursor:pointer;margin:0}
.soc-sw input{position:absolute;opacity:0;width:1px;height:1px}
.soc-sw-t{width:36px;height:20px;border-radius:999px;background:#c9cfdf;position:relative;flex:none;transition:background .15s}
.soc-sw-t::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s}
.soc-sw input:checked+.soc-sw-t{background:#1C7C54}
.soc-sw input:checked+.soc-sw-t::after{left:18px}
.soc-sw input:focus-visible+.soc-sw-t{outline:2px solid var(--accent,#0a14c8);outline-offset:2px}
.soc-sw input:disabled+.soc-sw-t{opacity:.6}
.soc-lev-mai{background:#F2F3F8;border-radius:10px;padding:10px 12px;margin-top:12px}
@media (max-width:700px){
  .soc-lev-t,.soc-lev-t tbody,.soc-lev-t tr,.soc-lev-t td{display:block}
  .soc-lev-t tr{border-top:1px solid var(--line);padding:8px 0}
  .soc-lev-t td{border:0;padding:4px 0}
  .soc-lev-t td:last-child{text-align:left;white-space:normal}
  .soc-lev-seg{display:flex;width:100%}.soc-lev-seg label{flex:1 1 auto;text-align:center;padding:8px 6px}
}

/* 12.56: la faculty della società, solo chi c'è */
table.fac-soc td.chi{padding-left:0}
.fac-soc-sotto{margin:-6px 0 12px}
.fac-soc-proponi summary{cursor:pointer}
.prop-nome{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin-bottom:6px}
.prop-nome select{max-width:260px}
@media (max-width:900px){
  /* come la grafica approvata: una riga per persona, il nome a sinistra e il ruolo a destra */
  table.tab-scheda.fac-soc tr{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;padding:10px 14px;margin-bottom:8px}
  table.tab-scheda.fac-soc td.chi{border:0;margin:0;padding:0;flex:1 1 60%}
  table.tab-scheda.fac-soc td[data-et]{padding:0;font-size:var(--fs-piccolo);color:var(--muted)}
  table.tab-scheda.fac-soc td[data-et]::before{display:none}
  table.tab-scheda.fac-soc tr.testa{display:none}
}

/* 12.60: l'editor del Programma completo (pages/impagina.php). Tre colonne come la grafica approvata: le voci, le
   scelte, l'anteprima vera. Interruttori e scelte a pulsanti uguali a quelli di «Società scientifica» (soc-sw, soc-lev-seg). */
.ed-top{flex-wrap:wrap;gap:8px}.ed-top h1{margin-right:4px}
.ed-stato{font-size:var(--fs-piccolo);color:var(--ok);font-weight:600;margin-left:auto}.ed-stato.attesa{color:var(--muted)}.ed-stato.errore{color:var(--danger)}
.ed-ar{display:inline-flex;gap:6px}
.ed-ok{background:var(--ok-soft);color:var(--ok);border-radius:var(--r);padding:8px 12px;font-size:var(--fs-piccolo);font-weight:600;margin:0 0 12px}
.ed-controlli{background:var(--warn-soft);border-radius:var(--r);padding:8px 12px;margin:0 0 12px;font-size:var(--fs-piccolo)}
.ed-controlli summary{cursor:pointer}.ed-controlli ul{margin:6px 0 2px;padding:0;list-style:none}.ed-controlli li{padding:3px 0}
.ed-controlli li.nota{color:var(--muted)}
.ed{display:grid;grid-template-columns:168px minmax(320px,420px) minmax(0,1fr);gap:16px;align-items:start}
.ed-nav{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;padding:6px;position:sticky;top:12px}
.ed-nav button{display:flex;gap:10px;align-items:center;border:0;background:transparent;padding:9px 10px;border-radius:8px;font:600 var(--fs-secondario)/1.2 Montserrat,sans-serif;color:var(--ink);cursor:pointer;text-align:left}
.ed-nav button span{width:18px;text-align:center;color:var(--muted);font-weight:700}
.ed-nav button:hover{background:var(--soft)}.ed-nav button.on{background:var(--blu-soft);color:var(--area)}.ed-nav button.on span{color:var(--area)}
.ed-pan{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;max-height:calc(100vh - 150px);overflow:auto;position:sticky;top:12px}
.ed-pan h2{margin:0 0 2px;font-size:var(--fs-titoletto)}.ed-pan .ed-h3{margin:22px 0 4px;font-size:var(--fs-testo-s)}
.ed-sotto{margin:0 0 14px;font-size:var(--fs-piccolo);color:var(--muted)}
.ed-campo{margin:0 0 14px}.ed-et{font:600 var(--fs-piccolo)/1.3 Montserrat,sans-serif;margin:0 0 6px}.ed-et-g{font-size:var(--fs-secondario);margin-top:12px}
.ed-nota{font-size:var(--fs-piccolo);color:var(--muted);margin-top:5px}.ed-avv{color:var(--warn);font-weight:600}
.ed-dal{display:inline-block;font:600 var(--fs-micro) Montserrat,sans-serif;color:var(--ok);background:var(--ok-soft);border-radius:999px;padding:1px 8px;margin-left:4px}
.ed-pan input:not([type]),.ed-pan input[type=text],.ed-pan input[type=number],.ed-pan select,.ed-pan textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;font-size:16px;background:#fff;color:var(--ink)}
.ed-pan textarea{resize:vertical}.ed-pan input[type=file]{margin-top:6px;font-size:var(--fs-piccolo);max-width:100%}
.ed-due{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ed-num{display:flex;align-items:center;gap:6px}.ed-num input{max-width:110px}.ed-num i{font-style:normal;color:var(--muted);font-size:var(--fs-piccolo)}
.ed-seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.ed-seg label{padding:7px 13px;font-size:var(--fs-piccolo);font-weight:600;cursor:pointer;margin:0;position:relative}
.ed-seg label+label{border-left:1px solid var(--line)}
.ed-seg label:has(input:checked){background:var(--accent,#0a14c8);color:#fff}
.ed-seg input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ed-seg label:has(input:focus-visible){outline:2px solid var(--accent,#0a14c8);outline-offset:-2px}
.ed-seg.lungo{display:flex;flex-direction:column;border-radius:12px;width:100%}.ed-seg.lungo label+label{border-left:0;border-top:1px solid var(--line)}
.ed-sw{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-piccolo);font-weight:600;cursor:pointer;margin:0 0 12px}
.ed-sw input{position:absolute;opacity:0;width:1px;height:1px}
.ed-sw i{width:36px;height:20px;border-radius:999px;background:#c9cfdf;position:relative;flex:none;transition:background .15s;margin-top:1px}
.ed-sw i::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s}
.ed-sw input:checked+i{background:#1C7C54}.ed-sw input:checked+i::after{left:18px}
.ed-sw input:focus-visible+i{outline:2px solid var(--accent,#0a14c8);outline-offset:2px}
.ed-sw.spento{cursor:default;opacity:.65}
.ed-sw small{display:block;font-weight:400;color:var(--muted);margin-top:2px}
.ed-sw-s{margin:0}
.ed-stili{display:grid;gap:8px;margin-bottom:16px}
.ed-stile{display:flex;gap:12px;align-items:center;border:2px solid var(--area);border-radius:12px;padding:10px;font-size:var(--fs-piccolo)}
.ed-stile b{display:block;font-size:var(--fs-secondario)}.ed-stile span{color:var(--muted)}.ed-spunta{margin-left:auto;color:var(--area)!important;font-weight:800}
.ed-stile-ante{width:54px;height:72px;border-radius:4px;background:var(--c1);flex:none;position:relative;overflow:hidden;padding:6px}
.ed-stile-ante b{color:#fff;font:400 20px/1 Fraunces,serif}.ed-stile-ante i{position:absolute;left:6px;right:10px;height:3px;background:rgba(255,255,255,.5);bottom:18px}.ed-stile-ante i+i{bottom:10px;right:22px}
.ed-colori{display:flex;gap:14px;margin-bottom:8px}.ed-colori label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-piccolo);font-weight:600}
.ed-colori input{width:56px;height:36px;border:1px solid var(--line);border-radius:8px;padding:2px;background:#fff}
.ed-colore-libero{width:56px;height:34px;margin-top:6px;border:1px solid var(--line);border-radius:8px;padding:2px}
.ed-elenco-stili{display:grid;gap:4px;margin-bottom:6px}
.ed-sty{display:flex;justify-content:space-between;gap:10px;align-items:baseline;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 10px;font:600 var(--fs-piccolo) Montserrat,sans-serif;color:var(--ink);cursor:pointer;text-align:left}
.ed-sty small{font-weight:400;color:var(--muted);text-align:right}.ed-sty.on{border:2px solid var(--area);padding:7px 9px}
.ed-uno-stile{background:var(--soft);border-radius:10px;padding:2px 12px 4px;margin:8px 0}
.ed-range{display:flex;align-items:center;gap:10px}.ed-range input{flex:1}.ed-range output{font-weight:700;font-size:var(--fs-piccolo);width:44px;text-align:right}
.ed-sale{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--fs-piccolo)}.ed-sale span{display:inline-flex;gap:6px;align-items:center}.ed-sale i{width:14px;height:14px;border-radius:4px;display:inline-block}
.ed-sez{list-style:none;margin:0 0 10px;padding:0}
.ed-prt{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:6px;font-size:var(--fs-piccolo)}
.ed-prt.preso{opacity:.5}.ed-man{color:#AAB;cursor:grab;width:12px}
.ed-prt-t{flex:1;font-weight:600}.ed-prt-t small{display:block;font-weight:400;color:var(--muted)}
.ed-fisso{font-size:var(--fs-micro);color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.ed-frecce{display:inline-flex;gap:2px}.ed-frecce button{width:30px;height:30px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;color:var(--muted)}
.ed-libera{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 10px}.ed-libera legend{font:600 var(--fs-piccolo) Montserrat,sans-serif;padding:0 4px}
.ed-piu{margin-bottom:6px}
.ed-spunte{display:flex;flex-wrap:wrap;gap:4px 14px}.ed-spunte .check{font-size:var(--fs-piccolo);font-weight:500;display:inline-flex;align-items:center;gap:6px}
.ed-ag-t{font:600 var(--fs-secondario) Montserrat,sans-serif;margin:14px 0 6px}
.ed-ag{list-style:none;margin:0;padding:0;font-size:var(--fs-piccolo)}
.ed-ag li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}.ed-ag li span:last-child{text-align:right;color:var(--muted)}
.ed-ag li.no span:last-child{color:var(--danger);font-weight:600}.ed-ag li.si span:first-child::before{content:"✔ ";color:var(--ok)}.ed-ag li.no span:first-child::before{content:"✖ ";color:var(--danger)}
.ed-fissi{margin:0;padding-left:18px;font-size:var(--fs-piccolo);color:var(--muted)}.ed-fissi li{margin:3px 0}
.ed-link{border:0;background:none;color:var(--area);font:inherit;padding:0;cursor:pointer;text-decoration:underline}
.ed-gruppi{display:grid;gap:6px;margin-bottom:8px}
.ed-gruppo{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px 8px}
.ed-gruppo>input{flex:1}.ed-gruppo .ed-num input{max-width:76px}
.ed-gruppo-n{font-size:var(--fs-micro);font-weight:700;background:var(--soft);border-radius:999px;padding:2px 8px;color:var(--muted)}
.ed-aziende{display:grid;gap:6px;margin-bottom:14px}.ed-aziende label{display:grid;grid-template-columns:1fr 160px;gap:8px;align-items:center;font-size:var(--fs-piccolo);font-weight:600}
.ed-aziende small{display:block;font-weight:400}
.ed-fondo{border-top:1px solid var(--line);padding-top:12px;margin-top:18px;display:flex;gap:8px;justify-content:space-between}
.ed-ante{position:sticky;top:12px;background:#E6E8EE;border-radius:14px;padding:10px;min-width:0}
.ed-ante-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.ed-seg-s label{padding:6px 11px}
.ed-vai{display:inline-flex;gap:6px;align-items:center;font-size:var(--fs-piccolo);font-weight:600;margin:0}.ed-vai select{border:1px solid var(--line);border-radius:8px;padding:4px 6px;background:#fff}
.ed-ante iframe{display:block;width:100%;height:calc(100vh - 210px);min-height:520px;border:0;border-radius:8px;background:#E6E8EE}
#ed-prima[hidden]{display:none}
/* 12.62: il modello su cui si lavora (modelli con nome) e la copertina a elementi */
.ed-modello{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px 12px;margin:0 0 12px}
.ed-modello-et{font:600 var(--fs-micro) Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.ed-mod-menu{flex:1;min-width:220px}.ed-mod-menu>summary{cursor:pointer;list-style:none;font-size:var(--fs-secondario);padding:4px 0}.ed-mod-menu>summary::-webkit-details-marker{display:none}
.ed-mod-pan{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.ed-mod-tit{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.ed-mod-tab tr.qui td{background:var(--blu-soft)}.ed-mod-az{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.ed-mod-az form{margin:0}
.ed-mod-az1{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:flex-start}.ed-mod-az1 form{margin:0}
.ed-pop{position:relative}.ed-pop>summary{list-style:none}.ed-pop>summary::-webkit-details-marker{display:none}
.ed-pop-pan{position:absolute;right:0;top:calc(100% + 6px);z-index:30;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:0 10px 30px rgba(20,30,60,.16);display:flex;gap:6px;width:min(360px,86vw)}
.ed-pop-pan input{flex:1;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:16px}
.ed-nuovo{max-width:560px;margin-top:6px}.ed-nuovo .check{display:flex;gap:8px;align-items:center;font-size:var(--fs-piccolo);font-weight:600;margin:6px 0 4px}
.ed-nuovo select{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:16px;margin-bottom:4px}
.ed-blocco{margin:0 0 12px}.ed-blocco form.inline,form.inline{display:inline;margin:0}
.ed-fs{border:0;margin:0;padding:0;min-width:0}.ed-fs[disabled]{opacity:.6}
.ed-el{background:var(--soft);border-radius:12px;padding:10px 12px;margin:0 0 14px}
.ed-el-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}.ed-el-add{display:inline-flex;flex-wrap:wrap;gap:4px}
.ed-el-guide{margin-left:auto}
.ed-el-prop{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.ed-el-prop h4{margin:0 0 2px;font-size:var(--fs-secondario)}.ed-el-prop .ed-campo{margin-bottom:10px}
.ed-el-tre{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ed-el-az{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.ed-livelli{list-style:none;margin:0 0 8px;padding:0}
.ed-livelli li{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px 6px;margin-bottom:4px;font-size:var(--fs-piccolo)}
.ed-livelli li.sel{border:2px solid #E5484D;padding:3px 5px}.ed-livelli li.nascosto .ed-liv-n{color:var(--muted);text-decoration:line-through}
.ed-livelli button{border:0;background:transparent;cursor:pointer;font:inherit;padding:4px 6px;border-radius:6px;color:var(--ink)}
.ed-livelli button:hover{background:var(--soft)}.ed-livelli button.aperto{opacity:.3}.ed-liv-n{flex:1;text-align:left}
@media (max-width:600px){.ed-el-tre{grid-template-columns:1fr 1fr}.ed-el-guide{margin-left:0}.ed-mod-tab .ed-mod-az{justify-content:flex-start}}
@media (max-width:1180px){.ed{grid-template-columns:150px minmax(300px,380px) minmax(0,1fr)}}
@media (max-width:900px){
  .ed{grid-template-columns:1fr}
  .ed-nav{position:static;display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
  .ed-nav button{padding:10px 8px;font-size:var(--fs-piccolo);justify-content:center}
  .ed-pan{position:static;max-height:none}
  .ed-ante{position:static}.ed-ante iframe{height:70vh;min-height:420px}
  .ed-stato{margin-left:0;flex-basis:100%}
}
@media (max-width:600px){
  .ed-due{grid-template-columns:1fr}
  .ed-seg{display:flex;width:100%}.ed-seg label{flex:1 1 auto;text-align:center;padding:9px 6px}
  .ed-aziende label{grid-template-columns:1fr}
  .ed-nav button span{display:none}
}

/* 12.62: Stampe, i modelli del Programma completo per la collega (modelli-ed-ecm.html, schermata 1) e «Nuova stampa» */
.ms-voce{display:block}.ms-tit{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-bottom:10px}.ms-tit h2{margin:0;font-size:var(--fs-titoletto)}
.ms-cambiato{margin:0 0 12px}.ms-cambiato a{font-weight:600;margin-left:4px}
.ms-carte{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.ms-carta{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;background:#fff}
.ms-carta-t{font-size:var(--fs-secondario)}.ms-stato{margin:2px 0}.ms-carta .row{margin-top:auto}
.ms-sotto{margin-top:12px;align-items:center}
.ms-manca{font-size:var(--fs-piccolo)}.ms-manca summary{cursor:pointer;color:var(--area);font-weight:600}.ms-manca ul{margin:4px 0 0;padding-left:18px}
.ns-modo{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;margin-left:auto}
.ns-modo span,.ns-modo a{padding:6px 14px;font-size:var(--fs-piccolo);font-weight:600;text-decoration:none;color:var(--ink)}.ns-modo .on{background:var(--accent,#0a14c8);color:#fff}
.ns h3{margin:18px 0 8px;font-size:var(--fs-testo-s)}.ns h3:first-child{margin-top:0}
.ns-scelte{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.ns-sc[hidden]{display:none}
.ns-sc{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;background:#fff}
.ns-sc:has(input:checked){border:2px solid var(--area);padding:9px 11px;background:var(--blu-soft)}
.ns-sc b{display:block;font-size:var(--fs-secondario)}.ns-sc small{display:block;color:var(--muted);font-size:var(--fs-piccolo)}
.ns-due{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:8px}
@media (max-width:600px){.ns-modo{margin-left:0}}

/* 12.64: i sei stili nella voce «Stile» dell'editor */
.ed-stili label.ed-stile{cursor:pointer;border:1px solid var(--line);margin:0}.ed-stili label.ed-stile.on,.ed-stili label.ed-stile:has(input:checked){border:2px solid var(--area)}
.ed-stile input{position:absolute;opacity:0;width:1px;height:1px}.ed-stile:has(input:focus-visible){outline:2px solid var(--accent,#0a14c8);outline-offset:2px}
.ed-stile-ante.st-gradiente{background:radial-gradient(70% 60% at 25% 25%,var(--c1),transparent),radial-gradient(70% 60% at 80% 60%,var(--c2),transparent),#0B0B23}
.ed-stile-ante.st-svizzero{background:#fff;border:1px solid #111}.ed-stile-ante.st-svizzero b{color:var(--c1)}.ed-stile-ante.st-svizzero i{background:#111}
.ed-stile-ante.st-clinico{background:#F0F7F6;border-left:6px solid var(--c1)}.ed-stile-ante.st-clinico b{color:#0B3B37}.ed-stile-ante.st-clinico i{background:var(--c1)}
.ed-stile-ante.st-congresso{background:linear-gradient(180deg,var(--c1) 55%,#fff 55%)}.ed-stile-ante.st-congresso i{background:var(--c2)}
.ed-stile-ante.st-fasce{background:linear-gradient(90deg,#fff 55%,#E5484D 55% 70%,#2F6DF6 70% 85%,#2FA84F 85%)}.ed-stile-ante.st-fasce b{color:#0F172A}.ed-stile-ante.st-fasce i{background:#0F172A}

/* 12.66: la quota «per chi · quanto» nella Scheda evento (sezione Accreditamento) */
.ev-quote{margin:12px 0 4px}.ev-quote-t{font-weight:600;font-size:var(--fs-piccolo);margin-bottom:6px}
.ev-quote-r{display:grid;grid-template-columns:150px 1fr;gap:8px;margin-bottom:6px}
@media (max-width:600px){.ev-quote-r{grid-template-columns:1fr 1.5fr}}
/* 12.66: la voce «Locandina» dell'editor */
.ed-dett{margin:6px 0 12px;font-size:var(--fs-piccolo)}.ed-dett summary{cursor:pointer;font-weight:600}.ed-spunte-col{flex-direction:column;margin-top:8px}
/* 12.67: la bozza da far approvare (Stampe) e le pagine pubbliche della bozza e della pagina pubblicitaria */
.ms-bozza{margin:2px 0;font-size:var(--fs-piccolo);color:var(--muted)}.ms-bozza.ok{color:var(--ok);font-weight:600}
.ms-manda{font-size:var(--fs-piccolo)}.ms-manda summary{cursor:pointer;color:var(--area);font-weight:600}
.ms-manda-f{margin-top:8px;display:grid;gap:8px}.ms-manda-2{display:grid;grid-template-columns:1fr 1fr;gap:6px}
@media (max-width:600px){.ms-manda-2{grid-template-columns:1fr}}
.bz-t{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-bottom:10px}.bz-t h2{margin:0}
.bz-pdf{display:block;width:100%;height:70vh;min-height:420px;border:1px solid var(--line);border-radius:10px;background:#E6E8EE}
.bz-form{margin-top:12px;max-width:640px}
/* 12.69 — Richieste con l'editor delle Comunicazioni e il pulsante «🔗 Link» (grafica approvata il 21/10:
   proposta-richieste-editor/grafica.html). La riga dell'indirizzo sotto la barra; la nuvoletta con le regole
   delle email (mail_veste_bolla): i margini scritti per l'email si stringono, i link si leggono come link */
.ed-link-riga{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0 0 6px;padding:8px 10px;border:1px solid var(--area);background:var(--blu-soft,#EEF0FF);border-radius:10px;font-size:var(--fs-piccolo)}
.ed-link-riga label{font-weight:600;margin:0}
.ed-link-riga input{flex:1 1 220px;min-width:0;font-size:16px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;margin:0}
.ed-link-riga .btn{margin:0}
.ed-link-err{flex-basis:100%;color:#a31515;font-weight:600}
.ed-link-err[hidden]{display:none}
.ed-parola{color:#060ED0;text-decoration:underline;word-break:normal;cursor:help}
.fm-m > :last-child{margin-bottom:0!important}
.fm-m p,.fm-m ul,.fm-m ol{margin-bottom:10px!important}
.fm-m a:not(.fm-vai){color:var(--area);text-decoration:underline;overflow-wrap:anywhere}
.ed-bolla{margin:0}.ed-bolla .fm-m{max-width:100%;margin:0}
.ed-come-bolla{margin-top:8px}
@media (max-width:600px){
  .ed-link-riga{flex-direction:column;align-items:stretch}
  .ed-link-riga input{flex:none;width:100%}
}

/* 12.70: al telefono l'importo in lettere va a capo sotto la cifra, invece di uscire dal riquadro */
@media(max-width:600px){ .li-scelta .li-imp{flex-wrap:wrap} .li-scelta .li-lettere{flex:1 0 100%;overflow-wrap:anywhere} }

/* 12.72: Ruoli e permessi in due parti (grafica proposta-ruoli-semplici/domanda-2.html). ① Riservato su fondo rosso
   chiaro, ② Tutte le funzioni bianca; il numero tondo rosso e blu come nella grafica approvata */
.rp-parte{margin-bottom:16px}
.rp-p1{background:#FDECEA;border-color:#F3C6C0}
.rp-parte-testa{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.rp-parte-testa h3{margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rp-parte-sotto{font-weight:400;font-size:var(--fs-piccolo);color:var(--muted);font-family:inherit}
.rp-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--danger,#b3261e);color:#fff;font-size:13px;font-weight:700;flex:none}
.rp-p2 .rp-num{background:var(--blu)}
.rp-parte-nota{margin:6px 0 10px;max-width:90ch}
.rp-p1 table.rp th,.rp-p1 table.rp td.rp-mod-col{background:#FFF7F6}
.rp-p1 table.rp td{border-bottom-color:#F6D9D5}
table.rp-ris{min-width:820px}
table.rp-ris td.rp-c.no select,table.rp-ris td.rp-c.no .rp-v{background:#fff;border-color:#F0B8B3;color:var(--danger,#b3261e);font-weight:600}
td.rp-c .rp-lk,.rp-lk-es{display:inline-block;font-size:var(--fs-micro);font-weight:700;color:var(--danger,#b3261e);background:#FDECEA;border-radius:999px;padding:2px 9px;white-space:nowrap}
td.rp-c:not(.rp-lucc) .rp-lk{display:none}
td.rp-c.rp-lucc select,td.rp-c.rp-lucc .rp-v,td.rp-c.rp-lucc .rp-mod{display:none}
.rp-salva{position:sticky;bottom:0;background:#fff;padding:10px 0;border-top:1px solid var(--line);z-index:3}
@media (max-width:760px){
  .rp-attrezzi{justify-content:stretch}
  table.rp-ris{min-width:0}
  .rp-parte-testa .btn{width:100%}
}
.rp-p1 .rp-parte-testa .btn.danger{background:var(--danger,#b3261e);border-color:var(--danger,#b3261e);color:#fff}
@media (max-width:760px){ .rp-salva .small{display:none} .rp-salva .btn{width:100%} }
/* 12.73 — «PEC arrivate» degli incarichi (Adempimenti → Lettere di incarico): lo stesso elenco di Grant */
.ipa .ipa-az{justify-content:flex-end;gap:6px;flex-wrap:wrap;align-items:center}
.ipa .ipa-az form{margin:0}
.li-sum-n .ipa-forse{margin-left:8px;color:#7a4e0c;background:var(--warn-soft);border-radius:6px;padding:2px 7px;white-space:nowrap}
.ipa-nota{margin:0 0 12px}
@media (max-width:600px){.ipa .ipa-az{justify-content:stretch}.ipa .ipa-az .btn{flex:1 1 100%;text-align:center}.li-sum-n .ipa-forse{white-space:normal;margin:4px 0 0;display:inline-block}}

/* 12.75: «La facciamo noi · No, l'azienda» e «Lo facciamo noi · No» nella riga di una persona del workshop
   (grafica proposta-ws-chi-incarica/domanda-1.html, A). Due pulsanti attaccati: blu la scelta di adesso,
   grigio scuro quando la fa l'azienda. */
.ws-seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:0 0 5px;max-width:100%}
.ws-seg-b{border:0;border-right:1px solid var(--line);background:#fff;color:var(--muted);font-family:inherit;font-weight:600;font-size:12px;line-height:1.2;padding:6px 10px;cursor:pointer;white-space:nowrap;min-height:32px}
.ws-seg-b:last-child{border-right:0}
.ws-seg-b:hover:not(:disabled){background:var(--blu-soft)}
.ws-seg-b.on{background:var(--blu,#060ED0);color:#fff;cursor:default;opacity:1}
.ws-seg-b.on.az{background:#4a5272}
@media (max-width:900px){.ws-seg{display:flex;width:100%}.ws-seg-b{flex:1 1 50%;min-height:38px}}
/* al telefono la cella con le due scelte va su più righe: l'etichetta, le due scelte larghe, sotto lo stato */
@media (max-width:900px){
  table.ws-tab td:has(> .ws-seg){flex-wrap:wrap;gap:4px 10px}
  table.ws-tab td:has(> .ws-seg)::before{width:100%}
  table.ws-tab td:has(> .ws-seg) > *{flex:1 1 100%}
}
/* 12.76 — «Da completare» nell'editor della locandina (proposta-locandina-vuota, sezione 2): quello che manca, ognuno
   con il suo posto di sempre; stesso bianco e stesse righe del pannello */
.ed-dac{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 14px}
.ed-dac summary{cursor:pointer;font:700 var(--fs-testo-s)/1.3 Montserrat,sans-serif}
.ed-dac-n1{display:inline-block;background:var(--danger);color:#fff;border-radius:99px;padding:0 8px;font-size:12px;margin-left:4px;vertical-align:1px}
.ed-dac>.ed-nota{margin:4px 0 6px}
.ed-dac-r{padding:10px 0;border-top:1px solid var(--line);font-size:var(--fs-piccolo)}.ed-dac-r .ed-et{font-size:var(--fs-secondario);margin-bottom:5px}
.ed-dac-r select,.ed-dac-r input:not([type=checkbox]){margin-top:6px}
.ed-dac-q{display:grid;grid-template-columns:2fr 3fr;gap:6px}.ed-dac-q input{margin-top:0!important}.ed-dac-q+.ed-dac-q{margin-top:6px}
.ed-pan input.ed-dac-n{width:110px}
.ed-dac-az{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.ed-dac .btn{margin-top:4px}
@media (max-width:600px){.ed-dac-q{grid-template-columns:1fr}}

/* ---------- 12.77 — Stampe di pernottamenti, rooming list e viaggi (proposta-stampe-alloggi/proposta.html) ----------
   Tre fogli in A4 orizzontale: in cima i numeri grandi (come la grafica: «19 camere-notte certe»), il riepilogo sulla
   pagina 1 e il dettaglio dalla 2 (.fo-salto), le colonne nuove «A carico di» e «Per cosa». */
.fe-foglio .fo-numeri,.fe-foglio .fo-salto{display:none}
@media print{
  .fe-foglio .fo-numeri{display:flex;gap:10mm;margin:4mm 0 3mm}
  .fe-foglio .fo-numeri>div{flex:1;border-left:3px solid #0A0D31;padding:1mm 0 1mm 3mm}
  .fe-foglio .fo-numeri b{display:block;font-size:24px;line-height:1.1}
  .fe-foglio .fo-numeri span{font-size:11px;color:#333}
  .fe-foglio .fo-salto{display:block;break-after:page;height:0}
  .fe-foglio .fo-cpn{width:auto;min-width:45%}
  .fe-foglio .fo-paga td:nth-child(1){width:24%}.fe-foglio .fo-paga td:nth-child(2),.fe-foglio .fo-paga td:nth-child(3),.fe-foglio .fo-paga td:nth-child(4){width:9%}
  .fe-foglio .fo-noi td:nth-child(1){width:16%}.fe-foglio .fo-noi td:nth-child(2),.fe-foglio .fo-noi td:nth-child(3){width:7%;white-space:nowrap}
  .fe-foglio .fo-noi td:nth-child(4){width:4%}.fe-foglio .fo-noi td:nth-child(5){width:13%}.fe-foglio .fo-noi td:nth-child(6){width:9%}
  .fe-foglio .fo-noi td:nth-child(7){width:11%}.fe-foglio .fo-noi td:nth-child(8){width:15%}
  .fe-foglio .fo-room td:nth-child(1){width:26%}.fe-foglio .fo-room td:nth-child(2),.fe-foglio .fo-room td:nth-child(3){width:10%;white-space:nowrap}.fe-foglio .fo-room td:nth-child(4){width:6%}
  .fe-foglio .fo-viaggi td:nth-child(1){width:14%}.fe-foglio .fo-viaggi td:nth-child(2){width:15%}.fe-foglio .fo-viaggi td:nth-child(3){width:17%}
  .fe-foglio .fo-viaggi td:nth-child(4){width:9%}.fe-foglio .fo-viaggi td:nth-child(5){width:9%}.fe-foglio .fo-viaggi td:nth-child(6){width:10%}.fe-foglio .fo-viaggi td:nth-child(7){width:12%}
}
/* la riga di Pernottamenti: «con chi dorme» sotto la camera, «dal workshop …» sotto la tendina «A carico di» */
.pern .pn-cam{display:flex;flex-direction:column;gap:3px;width:100%}
.pern .pn-cam label{display:block;margin:0;font-weight:400}
.pern .pn-cam label span{display:block;font-size:11px;color:var(--muted,#5d6875);line-height:1.3}
.pern .pn-cam input,.pern .pn-cam select{width:100%}
.pern .pn-acar{display:block;margin:6px 0 0;font-weight:400}
.pern .pn-acar>span{display:block;font-size:11px;color:var(--muted,#5d6875);line-height:1.3}
.pern .pn-acar select{width:100%;min-width:120px}
.pern .acar-da{margin-top:2px;line-height:1.3}
select.acar-sel{min-width:150px}
/* 12.77: con «A carico di» sotto il nome e la colonna «Camera e richieste», la nota nostra cede 30px: la tabella resta
   nella pagina a 1440 senza scorrere di lato */
@media (min-width:701px){table.pern td textarea.cel.pn-nota{min-width:118px}}

/* 12.78 — Candidati: la ricerca accanto a «Ordina», dove l'ha trovata, le frecce della scheda
   (bozze/candidati-frecce-ricerca.html). Il campo è quello degli altri elenchi (.fb-c); il giallo è quello della
   bozza approvata. Al telefono le frecce stanno ferme in basso finché si scorre la scheda (sticky dentro il
   riquadro: quando si torna su all'elenco spariscono con lui). */
#candidature-ordina{flex:1 1 380px;min-width:0}
#candidature-ordina .fb-c{flex:1 1 220px}
.cand-quanti{margin:-2px 0 8px}.cand-quanti b{color:var(--ink)}
.cand-trov{font-size:12.5px;color:var(--muted);margin-top:3px}
.cand-trov-tel{display:none}
#candidature tr.con-trov td{border-bottom:0;padding-bottom:4px}
#candidature tr.cand-trov-riga td{padding-top:0;padding-bottom:12px}
#candidature tr.cand-trov-riga .cand-trov{margin:0}
#candidata,#candidature{scroll-margin-top:72px}   /* la barra in alto non copre il nome aprendo la scheda */
.cand-trov b{color:var(--ink)}
mark.cand-m{background:#FFF1A8;color:inherit;padding:0 2px;border-radius:3px}
.cand-cv-no{font-size:12px}
.cand-cv-pezzo{display:inline-block;background:var(--soft);border-radius:6px;padding:2px 8px;margin-left:6px}
.cand-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--soft);border-radius:var(--r);padding:8px 10px;margin:0 0 16px}
.cand-freccia{flex:0 0 auto;white-space:nowrap;font-weight:700}
.cand-freccia[aria-disabled=true]{opacity:.35;pointer-events:none}
.cand-dove{text-align:center;font-size:12.5px;color:var(--muted);min-width:0}
.cand-dove b{display:block;color:var(--ink);font-size:14px}
.cand-dove kbd{display:inline-block;border:1px solid #C9CEDD;border-bottom-width:2px;border-radius:5px;padding:0 6px;font:600 11px ui-monospace,Menlo,monospace;background:#fff;color:var(--ink)}
.cand-torna{display:none}
@media (max-width:600px){
  #candidata{display:flex;flex-direction:column}
  .cand-torna{display:block;margin:0 0 10px}
  .cand-nav{order:9;position:sticky;bottom:0;z-index:5;margin:14px -12px -14px;border-radius:0 0 var(--rl) var(--rl);background:#fff;border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -6px 16px rgba(10,13,49,.06)}
  .cand-freccia{font-size:20px;padding:10px 18px;min-width:52px;justify-content:center}
  .cand-lungo,.cand-tasti,#candidata .cand-torna-btn{display:none}   /* al telefono «‹ Torna all'elenco» sta in cima */
}
@media (max-width:900px){   /* qui la tabella è a schede (tab-scheda): «trovato nel …» sta sotto il nome */
  .cand-trov-tel{display:block}
  #candidature tr.cand-trov-riga{display:none!important}
}
@media print{.cand-nav,.cand-torna{display:none!important}}

/* 12.79 — i messaggi con i candidati (bozze/candidati-chat.html, A): nella scheda del candidato (pages/evforn.php),
   nella sua pagina (pages/fornitore.php) e nella pagina Annunci. Le nuvolette sono quelle dei fornitori (.fm, 11.57) */
.cm-box{margin:14px 0 4px;padding-top:12px;border-top:1px solid var(--line)}
.cm-tit{margin:0 0 10px}
.cm-box .fm-m{max-width:80%}
.cm-invia{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cm-invia .btn{flex:0 0 auto}
.cm-prima>summary{cursor:pointer;color:var(--muted);margin:0 0 8px}
.pill.cm-nuovo{background:#1F45D6;color:#fff}   /* il pallino blu «1 nuovo» */
.cm-conto{font-size:12.5px;color:var(--muted);white-space:nowrap}
#candidature td.cm-col a{text-decoration:none}
.cm-sue .cm-conv+.cm-conv{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.cm-sue h3 .pill{vertical-align:2px}
.cm-nuovi{list-style:none;margin:0;padding:0}
.cm-nuovi li{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:7px 0;border-top:1px solid var(--line)}
.cm-nuovi li:first-child{border-top:0}
@media (max-width:600px){
  .cm-box .fm-m{max-width:92%}
  /* la barra delle frecce (sticky, 12.78) resta ferma in fondo solo se il riquadro non taglia quello che sborda:
     .panel ha overflow:hidden, e con la scheda più lunga dello schermo la barra restava in fondo alla scheda */
  #candidata{overflow:visible}
}
@media print{.cm-box{display:none!important}}
/* 12.80 — il kit social in Stampe (proposta-kit-social/index.html): la scheda «Social», le carte dei momenti con
   l'anteprima disegnata dal browser, le forme, «⬇» e «📋 testo». Al telefono due carte per riga. */
.kit{border:1.5px solid #2E8B57}
.kit .ms-tit h2 .pill{vertical-align:middle;font-size:var(--fs-piccolo)}
.kit-azioni{gap:8px;align-items:center;margin:2px 0 6px}
.kit-ora{margin:4px 0 8px;color:var(--mut,#5E6478)}.kit-ora .pill{margin-left:4px}
.kit-manca{margin:-4px 0 10px}
.kit-carte{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-top:6px}
.kit-carta{display:flex;flex-direction:column;gap:7px;min-width:0}
.kit-ante{background:#EEF0F5;border:1px solid var(--line);border-radius:10px;overflow:hidden;display:grid;place-items:center;aspect-ratio:4/5;min-height:60px}
.kit-ante canvas{width:100%;height:100%;object-fit:contain;display:block}
.kit-ante.kit-f-9x16{aspect-ratio:9/16}.kit-ante.kit-f-1x1{aspect-ratio:1/1}.kit-ante.kit-f-fb{aspect-ratio:1920/1005}.kit-ante.kit-f-li{aspect-ratio:1776/444}
.kit-nome{font-size:var(--fs-secondario)}
.kit-forme,.kit-var{align-self:flex-start;max-width:100%}
.kit-quante{align-self:center;padding:0 8px}
.kit-gesti{gap:6px;align-items:flex-start;flex-wrap:wrap}
.kit-testo{flex:1 1 auto}.kit-testo>summary{list-style:none;cursor:pointer;display:inline-block}.kit-testo>summary::-webkit-details-marker{display:none}
.kit-testo-in{margin-top:6px;display:flex;flex-direction:column;gap:8px}
.kit-t{display:flex;flex-direction:column;gap:4px}.kit-t textarea{width:100%;font-size:var(--fs-piccolo);resize:vertical}.kit-t .btn{align-self:flex-start}
.kit-piu{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}.kit-piu>summary{cursor:pointer;font-weight:600;color:var(--area);font-size:var(--fs-secondario)}
.kit-perche{margin:6px 0;padding-left:18px}
@media (max-width:720px){
  .kit-carte{grid-template-columns:1fr 1fr;gap:10px}
  .kit-azioni .btn{flex:1 1 auto;text-align:center}
}
.kit-forme{display:flex;flex-wrap:wrap;gap:5px}
.kit-forme label{border:1px solid var(--line);border-radius:7px;padding:3px 9px;font-size:var(--fs-piccolo);font-weight:600;cursor:pointer;margin:0;position:relative;background:#fff}
.kit-forme label:has(input:checked){background:var(--accent,#0a14c8);border-color:var(--accent,#0a14c8);color:#fff}
.kit-forme input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.kit-forme label:has(input:focus-visible){outline:2px solid var(--accent,#0a14c8);outline-offset:1px}
.kit .ed-seg.kit-var{display:inline-flex;width:auto}.kit .ed-seg.kit-var label{flex:0 0 auto;padding:5px 10px}

/* ---------- 12.83 Brand identity (pages/brand.php; grafica proposta-brand-identity/index.html, variante A) ---------- */
.bi-ante-box{padding:16px 18px}
.bi-ante{display:flex;gap:12px;align-items:flex-end;background:var(--soft);border-radius:12px;padding:12px;overflow:hidden;flex-wrap:wrap}
.bi-ante figure{margin:0;text-align:center}
.bi-ante figcaption{font-size:var(--fs-micro);color:var(--muted);margin-top:4px}
.bi-p{position:relative;overflow:hidden;border-radius:7px;background:var(--c1);color:#fff;font-family:var(--ft);padding:8px;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;text-align:left;background-size:cover}
.bi-p b{font-size:12px;line-height:1.1;font-weight:700;position:relative;z-index:1}
.bi-p .bi-lg{max-width:70%;max-height:22px;object-fit:contain;object-position:left;position:relative;z-index:1}
.bi-p:after{content:"";position:absolute;right:-22px;top:-22px;width:80px;height:80px;border-radius:50%;background:var(--c2);opacity:.55}
.bi-p.loc{width:96px;height:136px;background:#fbfaf7;color:var(--c1l);border:1px solid var(--line);justify-content:flex-start}
.bi-p.loc:after{background:var(--c3);opacity:.3}
.bi-p.loc .bi-foto{display:block;flex:1;border-radius:4px;background-color:var(--c2);background-size:cover;margin-top:auto;min-height:48px}
.bi-p.ig{width:110px;height:138px}
.bi-p.st{width:72px;height:128px;background:var(--c2)}.bi-p.st:after{background:var(--c1)}
.bi-p.web{width:210px;height:118px;background:linear-gradient(90deg,var(--c1),var(--c2))}
.bi-ante-nota{margin:10px 0 0}.bi-ante-nota a{font-weight:600}
.bi-manca{color:#7a4e0c}.bi-ok{color:var(--ok)}
.bi-sez>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.bi-sez>summary::-webkit-details-marker{display:none}
.bi-sez>summary h3{margin:0}
.bi-sez>summary:after{content:"▾";margin-left:auto;color:var(--muted)}
.bi-sez:not([open])>summary:after{content:"▸"}
.bi-sez[open]>summary{margin-bottom:12px}
.bi-gruppo{font-size:var(--fs-micro);font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:14px 0 6px}
.bi-loghi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.bi-slot{border:1px dashed #C5CCDD;border-radius:12px;padding:10px;font-size:var(--fs-piccolo);color:var(--muted);display:flex;flex-direction:column;gap:3px;min-width:0}
.bi-slot b{color:var(--ink);font-size:var(--fs-secondario)}
.bi-im{height:76px;border-radius:9px;background:#fff;border:1px solid var(--soft);display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;margin-bottom:4px;overflow:hidden}
.bi-im img{max-width:100%;max-height:100%;object-fit:contain}
.bi-im.scuro{background:var(--navy)}
.bi-im span{font-size:var(--fs-piccolo);color:#A0A7BC}
.bi-pat img{max-width:31%}
.bi-sotto{font-size:var(--fs-piccolo);color:var(--muted)}
.bi-auto{font-size:var(--fs-micro);color:var(--ok);font-weight:700}
.bi-giallo{font-size:var(--fs-piccolo);background:var(--warn-soft);color:#7a4e0c;border-radius:6px;padding:3px 7px;font-weight:600}
.bi-cambia>summary{cursor:pointer;color:var(--area);font-weight:600;font-size:var(--fs-piccolo)}
.bi-cambia[open]{display:flex;flex-direction:column;gap:6px}
.bi-cambia select,.bi-cambia input,.bi-cambia textarea{width:100%;min-width:0}
.bi-righe{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.bi-riga{display:grid;grid-template-columns:52px minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center}
.bi-riga img{width:52px;height:36px;object-fit:contain;border:1px solid var(--soft);border-radius:6px;background:#fff}
.bi-riga img.foto{object-fit:cover}
.bi-riga.nuova{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);opacity:.9}
.bi-riga.nuova input:first-child{border-style:dashed}
#immagini .bi-riga{grid-template-columns:52px minmax(0,.8fr) minmax(0,1.2fr) minmax(0,1fr)}
#immagini .bi-riga.nuova{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) minmax(0,1fr)}
.bi-due{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bi-img{display:flex;flex-direction:column;gap:5px}
.bi-foto-grande{position:relative;height:150px;border-radius:12px;background:var(--soft) center/cover no-repeat;border:1px solid var(--line);cursor:crosshair;display:flex;align-items:center;justify-content:center}
.bi-foto-grande span{color:#A0A7BC;font-size:var(--fs-piccolo)}
.bi-punto{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px rgba(10,13,49,.5)}
.bi-img-az{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bi-colori{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.bi-col{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:6px 12px 6px 8px;background:#fff;cursor:pointer}
.form .bi-col{display:flex;flex-direction:row;align-items:center;margin:0}
.form .bi-col input[type=checkbox]{width:20px;height:20px;min-width:20px;flex:0 0 20px;margin:0;padding:0}
.form .bi-col input[type=color]{width:42px;height:38px;padding:2px;border-radius:8px;margin:0;flex:0 0 auto}
.bi-col small{display:block;color:var(--muted);font-size:var(--fs-micro)}
.bi-col.vuoto input[type=color]{opacity:.35}
.bi-pallino{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:-1px}
.bi-prova{display:block;margin-top:6px;font-size:20px;color:var(--ink);line-height:1.2}
.bi-prova-txt{font-size:var(--fs-testo)}
.bi-file-el{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.bi-file{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:9px;padding:6px 10px;background:#fff;font-size:var(--fs-secondario)}
.bi-file i{font-style:normal;font-size:10px;font-weight:800;color:#fff;background:#C0392B;border-radius:4px;padding:1px 5px}
.bi-file i.ai{background:#E08A00}.bi-file i.zip{background:#5E6785}.bi-file i.f,.bi-file i.img{background:#2F5D8F}
.bi-file small{color:var(--muted)}
.bi-file .lnk,.bi-u .lnk{appearance:none;border:0;background:none;padding:0;font:inherit;font-size:var(--fs-piccolo);color:var(--area);text-decoration:underline;cursor:pointer}
.bi-dati{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}
.bi-dati>div,.bi-dati>label{border-bottom:1px solid var(--soft);padding:4px 0 8px;font-size:var(--fs-secondario);margin:0}
.bi-dati em{display:block;font-style:normal;color:var(--muted);font-size:var(--fs-piccolo)}
.bi-dati label input,.bi-dati label select{margin-top:4px}
.bi-da{font-size:var(--fs-piccolo);margin-left:4px}
.bi-nuovo{background:var(--ok-soft);border-radius:8px;padding:6px 8px!important}
.bi-salva{position:sticky;bottom:0;z-index:5;background:rgba(244,246,251,.94);backdrop-filter:blur(4px);padding:12px 0;display:flex;gap:12px;align-items:center;border-top:1px solid var(--line);margin-bottom:18px}
.bi-carica{gap:8px;align-items:center;flex-wrap:wrap}
.bi-usa{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.bi-u{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;font-size:var(--fs-secondario)}
.bi-mini{width:100%;height:70px;border-radius:7px;background:var(--navy)}
.bi-mini.web{background:linear-gradient(90deg,var(--c1,#2A3FD6),var(--c2,#00B4D8))}
.bi-mini.completo{background:#FBFAF7;border:1px solid var(--line);box-shadow:inset 0 14px 0 var(--c1,#17324D)}
.bi-mini.locandina{background:linear-gradient(180deg,#FBFAF7 55%,var(--c2,#2E9CCA) 55%);border:1px solid var(--line)}
.bi-mini.social{background:var(--c1,#17324D);box-shadow:inset -30px -30px 0 -10px var(--c2,#2E9CCA)}
/* 12.84: nell'editor, da dove parte il modello (pages/impagina.php, $html_bi) */
.ed-bi{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-radius:10px;padding:8px 12px;margin:0 0 10px;font-size:var(--fs-secondario)}
.ed-bi.segue{background:var(--ok-soft);color:#0B5F36}
.ed-bi.aparte{background:var(--warn-soft);color:#7a4e0c}
.ed-bi a{font-weight:600}
.kit-bi{margin:4px 0 0}
.bi-rimando{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 20px}
.bi-rim-logo{height:40px;max-width:120px;object-fit:contain}
.bi-rim-testo{display:flex;flex-direction:column;flex:1;min-width:220px}
.bi-rim-pallini{display:flex;gap:4px}.bi-rim-pallini i{width:18px;height:18px;border-radius:50%;display:block;border:1px solid rgba(0,0,0,.08)}
@media (max-width:900px){.bi-loghi,.bi-usa{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){
  .bi-ante{justify-content:center;gap:8px}
  .bi-p.web{width:100%;height:90px}
  .bi-due,.bi-dati,.bi-img-az{grid-template-columns:1fr}
  .bi-riga,.bi-riga.nuova,#immagini .bi-riga,#immagini .bi-riga.nuova{grid-template-columns:1fr}
  .bi-riga img{width:80px;height:50px}
  .bi-colori{gap:8px}.form .bi-col{padding:6px 8px;flex:1 1 30%}
  .bi-rimando .btn{width:100%;text-align:center}
}
.ed-ante-bar[hidden]{display:none}   /* 12.84: nell'aspetto dei social non ci sono pagine */
/* 12.85: Brand identity, quello che manda la società e «Riprendi da un altro evento»; la pagina della società */
.bi-arrivi{border:2px solid var(--warn);background:#FFFDF6}
.bi-arr-el{display:flex;flex-direction:column;gap:10px}
.bi-arr{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid var(--soft);padding-bottom:10px}
.bi-arr img{width:72px;height:48px;object-fit:contain;background:#fff;border:1px solid var(--soft);border-radius:8px}
.bi-arr>div{display:flex;flex-direction:column;min-width:0}
.bi-arr .row{gap:6px}
.bi-parti{display:flex;flex-wrap:wrap;gap:8px 18px;margin:8px 0}
.form .bi-parte{display:flex;flex-direction:row;align-items:center;gap:8px;margin:0;font-weight:500}
.form .bi-parte input{width:20px;height:20px;min-width:20px;margin:0;padding:0}
.bs-miei{display:flex;flex-direction:column;gap:10px}
.bs-mio{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid var(--soft);padding-bottom:10px}
.bs-mio img{width:64px;height:44px;object-fit:contain;background:#fff;border:1px solid var(--soft);border-radius:8px}
.bs-mio>div{display:flex;flex-direction:column;min-width:0}
.bs-tipo{display:flex;align-items:center;justify-content:center;width:64px;height:44px;border-radius:8px;background:var(--soft);font-weight:800;font-size:var(--fs-piccolo);color:var(--muted)}
@media (max-width:600px){.bi-arr{grid-template-columns:56px minmax(0,1fr)}.bi-arr .row{grid-column:1 / -1}.bs-mio{grid-template-columns:56px minmax(0,1fr)}.bs-mio .pill{grid-column:2}}
.bs-mio .pill,.bi-arr .pill{justify-self:start}
/* 12.86 — il compositore delle automazioni (pages/autocomp.php): i quattro mattoncini numerati, come nella grafica
   approvata; i campi e i riquadri sono quelli delle altre pagine, qui solo la disposizione */
.ac-form{display:flex;flex-direction:column;gap:12px;max-width:920px}
.ac-nome{display:flex;flex-direction:column;gap:4px;max-width:520px}
.ac-passo{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;margin:0}
.ac-num{width:28px;height:28px;border-radius:50%;background:var(--blu);color:#fff;font-weight:700;font-size:var(--fs-piccolo);display:flex;align-items:center;justify-content:center}
.ac-t{font-weight:700;margin:2px 0 8px}
.ac-riga{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.ac-form .ac-riga select,.ac-form .ac-riga input.ac-n{width:auto;margin-top:0}
.ac-form .ac-riga input.ac-n{width:90px}
.ac-form .ac-chk{display:flex;align-items:center;gap:0;margin:0;font-family:inherit;font-weight:400}
.ac-form .ac-nome,.ac-form .ac-passo label{margin-bottom:12px}
.ac-form .ac-passo .ac-chk{margin-bottom:0}
.ac-passo textarea{width:100%;font-family:inherit}
.ac-parole{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.ac-parola{border:1px dashed #9fb4cc;background:#fff;color:var(--blu);border-radius:6px;padding:2px 7px;font-size:var(--fs-piccolo);cursor:pointer}
.ac-parola:hover{background:var(--soft)}
.ac-parola:disabled{cursor:default;opacity:.8}
.ac-anteprima{background:#FFF6DC;border-color:#E6CF8C;margin:0}
.ac-chi{margin:6px 0 0;padding-left:18px}
.ac-azioni{gap:8px;flex-wrap:wrap;margin:10px 0}
.ac-azioni form{margin:0}
.ac-testo{border:1px solid var(--linea, #dfe4ea);border-radius:8px;background:#fff;padding:8px 10px;margin-top:6px}
.ac-dl{grid-template-columns:auto 1fr;font-size:var(--fs-secondario);gap:6px 14px}
.ac-importa{display:flex;flex-direction:column;gap:10px;max-width:720px}
.ac-importa label{display:flex;flex-direction:column;gap:6px}
.ac-board{display:flex;flex-direction:column;gap:8px}
.ac-board-riga{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ac-board-riga>span:first-child{flex:1 1 260px;min-width:0}
.ac-board-riga form{margin:0}
.auto-azioni a.btn{text-decoration:none}
@media (max-width:600px){
  .ac-passo{grid-template-columns:26px minmax(0,1fr);gap:8px}
  .ac-riga{flex-direction:column;align-items:stretch}
  .ac-form .ac-riga select,.ac-form .ac-riga input.ac-n{width:100%;font-size:16px}
  .ac-azioni{flex-direction:column;align-items:stretch}
  .ac-azioni .btn,.ac-azioni form .btn{width:100%}
}
/* 12.86: i campi delle tratte nella riga del viaggio (pages/_tratte_campi.php) */
.tratte-campi{display:flex;flex-direction:column;gap:6px;margin:4px 0 14px}
.tratta-riga{display:grid;grid-template-columns:70px minmax(0,1.4fr) minmax(0,1fr) 110px minmax(0,1.2fr);gap:8px;align-items:end}
.tratta-riga>b{padding-bottom:12px}
.form .tratta-riga label{margin-bottom:0;font-size:var(--fs-piccolo)}
.tratta-riga input{margin-top:4px}
td .tratte-campi .tratta-riga{grid-template-columns:1fr 1fr;min-width:230px}
td .tratte-campi .tratta-riga>b{grid-column:1 / -1;padding:0}
@media (max-width:600px){.tratta-riga{grid-template-columns:1fr 1fr}.tratta-riga>b{grid-column:1 / -1;padding:0}.tratta-riga input{font-size:16px}}
.tratte-det{margin:0 0 14px}
.tratte-det>summary{cursor:pointer;font-size:var(--fs-secondario);padding:4px 0}
