/* Framework360 live chat, dressed in Neon Thread (only on Neon Thread pages) */
/* Emiliano's face (pixel-ring avatar): Pixel answers, Emiliano calls back. Used by the chat label, the chat header and the closing "Parliamone" */
body:has(#es-root) { --es-me:url("https://uploads3.fw360.it/uploads/env/4/6056/img/files/emiliano-avatar-colore.webp?v=1791124553"); }
body:has(#es-root) .liveChat-container { --es-av:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' shape-rendering='crispEdges'><style>.e{animation:b 4s steps(1) infinite}%40keyframes b{0%25,92%25{opacity:1}93%25,97%25{opacity:0}}</style><path fill='%232FE39A' d='M8 0h1v1h-1zM8 1h1v1h-1z'/><path fill='%2338D9F5' d='M8 2h1v1h-1zM3 3h10v1h-10zM2 4h1v1h-1zM5 4h9v1h-9zM2 5h1v1h-1zM13 5h1v1h-1zM2 6h1v1h-1zM13 6h1v1h-1zM2 7h1v1h-1zM13 7h1v1h-1zM2 8h1v1h-1zM13 8h1v1h-1zM2 9h1v1h-1zM13 9h1v1h-1zM2 10h1v1h-1zM13 10h1v1h-1zM2 11h1v1h-1zM13 11h1v1h-1zM2 12h12v1h-12zM3 13h10v1h-10zM5 14h1v1h-1zM10 14h1v1h-1zM4 15h2v1h-2zM10 15h2v1h-2z'/><path fill='%237BE6FF' d='M3 4h2v1h-2z'/><path fill='%230A0F24' d='M3 5h10v1h-10zM3 6h10v1h-10zM3 7h2v1h-2zM7 7h3v1h-3zM12 7h1v1h-1zM3 8h2v1h-2zM7 8h3v1h-3zM12 8h1v1h-1zM3 9h10v1h-10zM3 10h4v1h-4zM10 10h3v1h-3zM3 11h10v1h-10z'/><path class='e' fill='%232FE39A' d='M5 7h2v1h-2zM10 7h2v1h-2zM5 8h2v1h-2zM10 8h2v1h-2z'/><path fill='%232FE39A' d='M7 10h3v1h-3z'/></svg>"); --ms-color-primary:#070B1C; --ms-color-secondary:#3B38B8; --ms-color-light:#070B1C; --ms-color-white:#0C1331; font-family:"Plus Jakarta Sans", system-ui, sans-serif; }
/* the bubble: Pixel, the AI assistant (never a human portrait: EU AI Act, people must know they talk to an AI) */
body:has(#es-root) .liveChat-container .liveChat-bubble { width:64px; height:64px; line-height:64px; margin:16px; border-radius:0; border:0; font-size:0 !important; overflow:visible; color:transparent !important;
  background:var(--es-av) center/contain no-repeat; image-rendering:pixelated; box-shadow:none; filter:drop-shadow(0 0 8px rgba(56,217,245,.35)); transition:transform .25s steps(3), bottom .4s, filter .25s ease; }
body:has(#es-root) .liveChat-container .liveChat-bubble:hover { opacity:1; transform:translateY(-3px); filter:drop-shadow(0 0 12px rgba(56,217,245,.6)); }
body:has(#es-root) .liveChat-container .liveChat-bubble > *:not(.liveChat-bubbleCount) { visibility:hidden; }
body:has(#es-root) .liveChat-container .liveChat-bubble::after { content:""; position:absolute; right:3px; bottom:3px; width:10px; height:10px; background:#2FE39A; box-shadow:0 0 0 2px #070B1C, 0 0 8px #2FE39A; animation:es-online 2.4s steps(2) infinite; }
@keyframes es-online { 50% { box-shadow:0 0 0 2px #070B1C, 0 0 2px #2FE39A; opacity:.65; } }
body:has(#es-root) .liveChat-container .liveChat-bubble::before { content:"Raccontami il nodo >>"; position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%); white-space:nowrap;
  font-family:Silkscreen, ui-monospace, monospace; font-size:12px; line-height:1; letter-spacing:.12em; text-transform:uppercase; padding:12px 14px 12px 48px; background:var(--es-me) 10px 50%/28px 28px no-repeat, #2FE39A; color:#0A0F24;
  clip-path:polygon(0 4px,4px 4px,4px 0,calc(100% - 4px) 0,calc(100% - 4px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 4px) calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 4px),0 calc(100% - 4px));
  transition:opacity .3s ease; }
html.es-chat-quiet body:has(#es-root) .liveChat-container .liveChat-bubble::before { opacity:0; }
body:has(#es-root) .liveChat-container .liveChat-bubble .liveChat-bubbleCount { font-size:12px; border-radius:0; width:22px; height:22px; line-height:22px; background:#FF5468; color:#fff; font-family:Silkscreen, ui-monospace, monospace; }
/* the open chat: an RPG dialogue box */
body:has(#es-root) .liveChat-container .liveChat-popup { padding:0 16px 16px; }
body:has(#es-root) .liveChat-container .liveChat-header { border-radius:0; background:#070B1C; border:3px solid #C9D3F5; border-bottom:1px solid rgba(201,211,245,.28); color:#EEF2FF; padding:14px 16px; }
body:has(#es-root) .liveChat-container .liveChat-header:hover { opacity:1; }
body:has(#es-root) .liveChat-container .liveChat-header .liveChat-avatar img { width:46px; height:46px; border-radius:0; content:var(--es-av); object-fit:contain; image-rendering:pixelated; }
body:has(#es-root) .liveChat-container .liveChat-header .liveChat-heading { font-weight:700; font-size:17px; line-height:1.25; color:#EEF2FF; }
body:has(#es-root) .liveChat-container .liveChat-header .liveChat-heading::after { content:"Pixel risponde · ti richiama Emiliano"; display:block; margin-top:7px; padding-left:30px; min-height:24px; line-height:24px; background:var(--es-me) 0 50%/24px 24px no-repeat; font-family:Silkscreen, ui-monospace, monospace; font-weight:400; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:#38D9F5; }
body:has(#es-root) .liveChat-container .liveChat-header .liveChat-header-toggle { color:#C9D3F5; }
body:has(#es-root) .liveChat-container .liveChat-start-messages,
body:has(#es-root) .liveChat-container .liveChat-message-area,
body:has(#es-root) .liveChat-container .liveChat-authForm { background:#070B1C; color:#EEF2FF; border-left:3px solid #C9D3F5; border-right:3px solid #C9D3F5; }
body:has(#es-root) .liveChat-container .liveChat-start-messages .liveChat-start-message { padding:28px 26px 18px; }
body:has(#es-root) .liveChat-container .liveChat-start-messages .liveChat-start-message i { font-size:0; width:56px; height:56px; margin:0 auto; background:#38D9F5; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 2h10v1h1v1h1v6h-1v1h-1v1H8v1H7v1H6v1H5v-3H3v-1H2v-1H1V4h1V3h1z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 2h10v1h1v1h1v6h-1v1h-1v1H8v1H7v1H6v1H5v-3H3v-1H2v-1H1V4h1V3h1z'/%3E%3C/svg%3E") center/contain no-repeat; filter:drop-shadow(0 0 6px rgba(56,217,245,.6)); }
body:has(#es-root) .liveChat-container .liveChat-start-messages .liveChat-start-message i::before { display:none; }
body:has(#es-root) .liveChat-container .liveChat-start-messages .liveChat-start-message p { font-size:16px; line-height:1.5; color:#EEF2FF; }
body:has(#es-root) .liveChat-container .liveChat-message { background:#121C42; color:#EEF2FF; border-radius:0; box-shadow:inset 3px 0 0 #38D9F5; }
body:has(#es-root) .liveChat-container .liveChat-message-area .liveChat-message-sent { background:#3B38B8; color:#fff; box-shadow:inset -3px 0 0 #9B7BFF; }
body:has(#es-root) .liveChat-container .liveChat-authForm .ms-form { background:#0C1331; color:#EEF2FF; border-radius:0; }
body:has(#es-root) .liveChat-container .liveChat-footer { background:#070B1C; border:3px solid #C9D3F5; border-top:1px solid rgba(201,211,245,.28); }
body:has(#es-root) .liveChat-container .liveChat-footer .liveChat-message-input { background:#0C1331 !important; color:#EEF2FF !important; font-family:"Plus Jakarta Sans", system-ui, sans-serif; font-size:16px; padding:14px !important; }
body:has(#es-root) .liveChat-container .liveChat-footer .liveChat-message-input::placeholder { color:#7C88AA; }
body:has(#es-root) .liveChat-container .liveChat-footer .liveChat-message-input:focus { box-shadow:inset 0 0 0 1.5px #38D9F5 !important; outline:none; }
body:has(#es-root) .liveChat-container .liveChat-footer .liveChat-submit-btn { background:#2FE39A !important; color:#0A0F24 !important; border:0 !important; font-family:Silkscreen, ui-monospace, monospace; letter-spacing:.1em; text-transform:uppercase; }
@media (max-width: 760px) {
  body:has(#es-root) .liveChat-container .liveChat-bubble { width:56px; height:56px; margin:14px; }
  body:has(#es-root) .liveChat-container .liveChat-bubble::before { content:"Scrivimi >>"; font-size:10px; padding:10px 12px 10px 40px; background-size:24px 24px, auto; background-position:9px 50%, 0 0; }
  body:has(#es-root) .liveChat-container .liveChat-popup { padding:0 10px 10px; }
}

/* the closing "Parliamone" (footer block and home): Emiliano's face above the title, so a person signs every page */
body:has(#es-root) .es-final h2::before { content:""; display:block; width:88px; height:88px; margin:0 auto 18px; background:var(--es-me) center/contain no-repeat; }
@media (max-width: 760px) { body:has(#es-root) .es-final h2::before { width:72px; height:72px; margin-bottom:14px; } }
