:root{
  --c:#2de2ff; --c2:rgba(45,226,255,.16); --c3:rgba(45,226,255,.45);
  --bg:#01060d; --pannello:rgba(4,20,34,.72); --testo:#d8f6ff; --tenue:#7fa9b8;
  --sicura-su:env(safe-area-inset-top); --sicura-giu:env(safe-area-inset-bottom);
}
body[data-ass="friday"]{ --c:#ff9a2e; --c2:rgba(255,154,46,.16); --c3:rgba(255,154,46,.45); --testo:#ffeedd; --tenue:#b8987f; }
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--testo);font-family:Rajdhani,system-ui,sans-serif;font-size:17px;overflow:hidden;overscroll-behavior:none}
#nucleo{position:fixed;inset:0;width:100%;height:100%;z-index:0}
button{font:inherit;color:inherit;cursor:pointer}
input,select{font:inherit;color:var(--testo)}

.barra{position:fixed;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;
  padding:calc(var(--sicura-su) + 10px) 14px 10px;background:linear-gradient(var(--bg) 75%,transparent)}
.titolo{text-align:center}
#nomeAss{background:none;border:none;padding:0;font-family:Orbitron,sans-serif;font-weight:700;letter-spacing:.28em;color:var(--c);text-shadow:0 0 14px var(--c3);font-size:18px}
.sotto{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--tenue);display:flex;align-items:center;justify-content:center;gap:7px;margin-top:3px}
.puntino{width:8px;height:8px;border-radius:50%;background:#456;box-shadow:0 0 0 0 transparent;transition:.25s}
.puntino.ascolto{background:var(--c);box-shadow:0 0 10px var(--c)}
.puntino.utente{background:#5dff9e;box-shadow:0 0 12px #5dff9e}
.puntino.elaboro{background:#ffe066;animation:lamp .7s infinite alternate}
.puntino.parlo{background:var(--c);animation:lamp .35s infinite alternate}
.puntino.errore{background:#ff4d5e}
@keyframes lamp{to{opacity:.3}}
.icona{width:42px;height:42px;border-radius:12px;border:1px solid var(--c2);background:rgba(0,0,0,.25);font-size:20px;color:var(--c)}

.vista{position:fixed;inset:0;z-index:2;display:none}
.vista.attiva{display:flex}
#vistaCentro{flex-direction:column;justify-content:flex-end;padding:0 14px calc(var(--sicura-giu) + 14px)}
#trascrizione{max-height:34vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:12px;
  mask-image:linear-gradient(transparent,#000 22%);-webkit-mask-image:linear-gradient(transparent,#000 22%);padding-top:30px}
.msg{max-width:88%;padding:8px 12px;border-radius:12px;line-height:1.35;white-space:pre-wrap;word-wrap:break-word;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.msg.user{align-self:flex-end;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}
.msg.assistant{align-self:flex-start;background:var(--c2);border:1px solid var(--c3)}
.msg.sistema{align-self:center;font-size:14px;color:var(--tenue);background:none;border:1px dashed var(--c2)}
.msg.errore{align-self:center;color:#ffb3ba;border:1px solid rgba(255,77,94,.5);background:rgba(255,77,94,.1)}
.controlli{display:flex;flex-direction:column;align-items:center;gap:12px}
.btnVoce{min-width:180px;height:54px;border-radius:27px;border:1px solid var(--c);background:rgba(0,0,0,.35);
  font-family:Orbitron,sans-serif;letter-spacing:.25em;color:var(--c);box-shadow:0 0 18px var(--c2),inset 0 0 14px var(--c2);transition:.2s;user-select:none;-webkit-user-select:none}
.btnVoce.on{background:var(--c2)}
.btnVoce:active{transform:scale(.97)}
.riga{display:flex;gap:8px;width:100%;max-width:640px}
.riga input{flex:1;min-width:0;height:46px;border-radius:12px;border:1px solid var(--c2);background:rgba(0,0,0,.45);padding:0 14px;outline:none}
.riga input:focus{border-color:var(--c3)}
.invia{width:46px;height:46px;border-radius:12px;border:1px solid var(--c3);background:var(--c2);color:var(--c);font-size:18px;flex:none}
#avvisi{position:fixed;top:calc(var(--sicura-su) + 74px);left:14px;right:14px;display:flex;flex-direction:column;gap:6px;align-items:center}
.avviso{font-size:14px;padding:6px 12px;border-radius:10px;background:rgba(255,77,94,.12);border:1px solid rgba(255,77,94,.4);color:#ffc7cd;max-width:560px;text-align:center}

.pannello{flex-direction:column;overflow-y:auto;padding:calc(var(--sicura-su) + 76px) 16px calc(var(--sicura-giu) + 24px);
  background:rgba(1,6,13,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.pannello > *{width:100%;max-width:640px;margin-left:auto;margin-right:auto}
.pannello h2{font-family:Orbitron,sans-serif;font-size:15px;letter-spacing:.2em;text-transform:uppercase;color:var(--c);margin:14px auto 6px}
.nota{color:var(--tenue);margin:0 auto 12px}
#listaMem{list-style:none;padding:0;margin-top:12px}
#listaMem li{display:flex;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--c2);border-radius:10px;margin-bottom:8px;background:var(--pannello)}
#listaMem li input{flex:1;min-width:0;background:none;border:none;outline:none}
#listaMem li small{color:var(--tenue);font-size:12px;flex:none}
#listaMem li button{border:none;background:none;color:#ff8a95;font-size:18px;flex:none}
.opz{display:flex;flex-direction:column;gap:6px;margin:10px auto;color:var(--tenue)}
.opz select{height:44px;border-radius:10px;border:1px solid var(--c2);background:#031220;padding:0 10px}
.opz.chk{flex-direction:row;align-items:center;gap:10px;color:var(--testo)}
.opz.chk input{width:20px;height:20px;accent-color:var(--c)}
.secondario{margin:12px auto;height:44px;border-radius:10px;border:1px solid rgba(255,77,94,.4);background:rgba(255,77,94,.08);color:#ffb3ba}
.stato{background:var(--pannello);border:1px solid var(--c2);border-radius:10px;padding:10px 12px;line-height:1.6;font-size:15px}
.stato b{color:var(--c);font-weight:600}
.ok{color:#5dff9e}.ko{color:#ff7d89}.att{color:#ffe066}

.menu{position:fixed;top:0;bottom:0;left:0;z-index:9;width:260px;max-width:80vw;padding:calc(var(--sicura-su) + 70px) 12px 20px;
  background:rgba(2,12,22,.96);border-right:1px solid var(--c2);display:flex;flex-direction:column;gap:6px;transform:translateX(-102%);transition:transform .25s}
.menu.aperto{transform:none}
.menu button{text-align:left;padding:11px 12px;border-radius:10px;border:1px solid transparent;background:none;letter-spacing:.06em}
.menu button.sel{border-color:var(--c3);background:var(--c2);color:var(--c)}
.menu .futuro{color:#55707b}
.menu .sep{font-size:12px;color:var(--tenue);text-transform:uppercase;letter-spacing:.12em;margin:14px 4px 2px}
.velo{position:fixed;inset:0;z-index:8;background:rgba(0,0,0,.45);display:none}
.velo.aperto{display:block}
.barra{z-index:10}

.modulo{display:flex;flex-direction:column;gap:4px}
.modulo > input,.opz input{height:44px;border-radius:10px;border:1px solid var(--c2);background:#031220;padding:0 12px;outline:none;width:100%;color-scheme:dark}
.primario{height:44px;padding:0 16px;border-radius:10px;border:1px solid var(--c3);background:var(--c2);color:var(--c);letter-spacing:.05em}
.modulo .primario{margin-top:8px}
.bottoni{display:flex;flex-wrap:wrap;gap:8px;margin:6px auto 10px}
.bottoni button{flex:1 1 120px}
.passi{padding-left:20px;line-height:1.5}
.passi b{color:var(--testo)}
.lista{list-style:none;padding:0;margin-top:16px}
.lista li{padding:10px 12px;border:1px solid var(--c2);border-radius:10px;margin-bottom:8px;background:var(--pannello);display:flex;gap:10px;align-items:flex-start}
.lista li .info{flex:1;min-width:0}
.lista li .quando{font-family:Orbitron,sans-serif;font-size:13px;color:var(--c);letter-spacing:.06em}
.lista li .tit{font-size:18px;margin:2px 0}
.lista li .esito{font-size:13px;color:var(--tenue)}
.lista li.passato{opacity:.55}
.lista li button{border:none;background:none;color:#ff8a95;font-size:18px;flex:none}
.modulo .opz{width:100%;margin:8px 0}

body.cloud .solopc{display:none}
.chiave{position:fixed;inset:0;z-index:50;background:rgba(1,6,13,.94);display:flex;align-items:center;justify-content:center;padding:16px}
.chiave form{width:100%;max-width:340px;display:flex;flex-direction:column;gap:12px;text-align:center}
.chiave .logo{font-family:Orbitron,sans-serif;letter-spacing:.3em;color:var(--c);font-size:22px;text-shadow:0 0 14px var(--c3)}
.chiave input{height:48px;border-radius:12px;border:1px solid var(--c3);background:#031220;padding:0 14px;outline:none;text-align:center}

/* AI Team */
.largo{width:100%;margin:12px auto}
.ass{border:1px solid var(--k3,var(--c2));border-radius:14px;padding:12px;margin-bottom:12px;background:var(--pannello)}
.ass.attivo{box-shadow:0 0 0 1px var(--k,var(--c)) inset,0 0 18px var(--k2,var(--c2))}
.ass .testa{display:flex;align-items:center;gap:10px}
.ass .sfera{width:34px;height:34px;border-radius:50%;flex:none;background:radial-gradient(circle at 35% 35%,#fff8,var(--k) 45%,#0008);box-shadow:0 0 14px var(--k)}
.ass .nome{font-family:Orbitron,sans-serif;letter-spacing:.14em;color:var(--k);font-size:15px}
.ass .ruolo{font-size:14px;color:var(--tenue)}
.ass .tag{font-size:12px;padding:2px 8px;border-radius:9px;border:1px solid var(--k3);color:var(--k);margin-left:auto;white-space:nowrap}
.ass ul{list-style:none;padding:0;margin:10px 0 6px;font-size:14px;line-height:1.45}
.ass ul li{display:flex;gap:6px}.ass ul li b{font-weight:600;flex:none}
.ass ul li span.n{color:var(--tenue)}
.ass .azz{display:flex;gap:8px;flex-wrap:wrap}.ass .azz button{flex:1 1 110px;height:40px;border-radius:10px;border:1px solid var(--k3);background:var(--k2);color:var(--k)}
.pallino{width:9px;height:9px;border-radius:50%;margin-top:6px;flex:none}.pallino.ok{background:#5dff9e}.pallino.parziale{background:#ffe066}.pallino.no{background:#ff7d89}
.modulo textarea,.opz textarea{border-radius:10px;border:1px solid var(--c2);background:#031220;padding:10px 12px;outline:none;width:100%;font:inherit;color:var(--testo);resize:vertical}
.opz input.colore{padding:4px;height:44px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:-2px 0 6px}
.chips button{height:30px;padding:0 10px;border-radius:15px;border:1px solid var(--c2);background:none;color:var(--tenue);font-size:13px}
.gruppo{border:1px solid var(--c2);border-radius:12px;padding:6px 12px;margin:10px 0}
.gruppo .etic{color:var(--c);font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin:6px 0 2px}
.gruppo .opz.chk{margin:8px 0}
.listaMem{list-style:none;padding:0;margin-top:10px}
.listaMem li{display:flex;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--c2);border-radius:10px;margin-bottom:8px;background:var(--pannello)}
.listaMem li span{flex:1;min-width:0}.listaMem li button{border:none;background:none;color:#ff8a95;font-size:18px}
.prog{border:1px solid var(--c2);border-radius:14px;padding:12px;margin:12px 0;background:var(--pannello)}
.prog .tit{display:flex;gap:8px;align-items:center}.prog .tit b{flex:1;font-size:18px;color:var(--c)}
.prog .tit button{border:none;background:none;color:#ff8a95;font-size:18px}
.prog .descr{color:var(--tenue);font-size:15px;margin:2px 0 8px}
.prog .cond{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.prog .cond label{display:flex;gap:6px;align-items:center;font-size:14px;padding:4px 10px;border-radius:14px;border:1px solid var(--c2)}
.prog .note{list-style:none;padding:0;margin:8px 0;font-size:15px}
.prog .note li{display:flex;gap:8px;padding:6px 0;border-top:1px solid var(--c2)}.prog .note li span{flex:1}.prog .note li small{color:var(--tenue);flex:none}
.prog .note li button{border:none;background:none;color:#ff8a95}
.msg .apriLab{display:block;margin-top:8px;height:38px;border-radius:10px;border:1px solid var(--c3);background:var(--c2);color:var(--c);width:100%}
[hidden]{display:none !important}

/* ---- miglioramenti grafici ---- */
.menu button{display:flex;align-items:center;gap:10px}
.menu button i{font-style:normal;width:22px;text-align:center;opacity:.9}
.menu .sep:first-child{margin-top:0}
.hud{position:absolute;top:calc(var(--sicura-su) + 66px);left:12px;right:12px;display:flex;gap:8px;z-index:3;pointer-events:none}
.hudBox{flex:1;min-width:0;padding:7px 10px;border:1px solid var(--c2);border-radius:12px;background:linear-gradient(180deg,rgba(4,20,34,.62),rgba(4,20,34,.32));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);position:relative;overflow:hidden}
.hudBox::before{content:"";position:absolute;left:0;top:0;width:14px;height:2px;background:var(--c);box-shadow:0 0 8px var(--c)}
.hudEt{font-family:Orbitron,sans-serif;font-size:9px;letter-spacing:.22em;color:var(--tenue)}
.hudVal{font-family:Orbitron,sans-serif;font-size:19px;color:var(--c);text-shadow:0 0 10px var(--c3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hudVal.piccolo{font-family:Rajdhani,sans-serif;font-size:16px;font-weight:600;color:var(--testo);text-shadow:none}
.hudSub{font-size:12px;color:var(--tenue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.conversa .hud{opacity:0;transform:translateY(-8px);transition:.3s}
.hud{transition:.3s}
.rapidi{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;scrollbar-width:none;width:100%}
.rapidi::-webkit-scrollbar{display:none}
.rapidi button{flex:none;display:flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:18px;border:1px solid var(--c2);background:rgba(4,20,34,.55);color:var(--testo);font-size:15px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.rapidi button i{font-style:normal}
.rapidi button:active{background:var(--c2);border-color:var(--c3)}
.pannello h2{display:flex;align-items:center;gap:10px}
.pannello h2::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--c3),transparent)}
.sotto2{margin-top:22px}
.listaFile{list-style:none;padding:0;margin:12px 0}
.listaFile li{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--c2);border-radius:12px;margin-bottom:8px;background:var(--pannello)}
.listaFile .ico{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--c2);font-size:18px;flex:none;overflow:hidden}
.listaFile .ico img{width:100%;height:100%;object-fit:cover}
.listaFile .info{flex:1;min-width:0}.listaFile .n{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.listaFile .d{font-size:13px;color:var(--tenue)}
.listaFile button{border:1px solid var(--c2);background:none;border-radius:8px;height:32px;padding:0 8px;color:var(--c)}
.listaFile button.ko{color:#ff8a95;border-color:#ff8a9555}
.caricaFile{display:flex;align-items:center;justify-content:center}
.ass .riass{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 6px}
.ass .riass span{font-size:13px;padding:2px 9px;border-radius:10px;border:1px solid var(--c2)}
.ass .dett{border:none;background:none;color:var(--tenue);font-size:13px;padding:0;margin-bottom:6px;text-decoration:underline}
.ass ul[hidden]{display:none}
.modulo select{height:44px;border-radius:10px;border:1px solid var(--c2);background:#031220;padding:0 10px;width:100%;color:var(--testo)}
/* HUD compatto: una sola riga sottile sotto il titolo, lascia libero il nucleo */
.hud{top:calc(var(--sicura-su) + 58px);left:50%;right:auto;transform:translateX(-50%);gap:0;width:max-content;max-width:calc(100% - 24px);border:1px solid var(--c2);border-radius:14px;background:rgba(4,20,34,.45);padding:3px 4px}
.hudBox{flex:none;padding:2px 10px;border:none;border-radius:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;display:flex;align-items:baseline;gap:6px;max-width:150px}
.hudBox+.hudBox{border-left:1px solid var(--c2)}
.hudBox::before,.hudEt,.hudSub{display:none}
.hudVal{font-size:13px;text-shadow:none}
.hudVal.piccolo{font-size:13px;font-weight:500;color:var(--tenue)}
body.conversa .hud{transform:translateX(-50%) translateY(-8px)}
/* chat più compatta: occupa meno spazio e lascia vedere il nucleo */
#trascrizione{max-height:24vh;gap:6px;margin-bottom:8px;padding-top:22px}
.msg{max-width:80%;padding:6px 10px;font-size:15px;line-height:1.3;border-radius:11px}
.msg.sistema{font-size:13px;padding:4px 10px}
.controlli{gap:8px}
.rapidi{padding-bottom:4px}
.rapidi button{height:32px;font-size:14px;padding:0 10px}
.btnVoce{height:48px;min-width:160px}
