/* ===== Gianni Puglisi — Suite AI ===== */
:root{
  --gp-navy:#0F2340; --gp-navy2:#16304F; --gp-cta:#FF5A1F; --gp-gold:#FFC46B;
  --gp-ink:#E7EDF6; --gp-mut:#8FA6C8; --gp-line:#1E3252; --gp-ok:#4ADE80;
  --gp-warn:#FFB84D; --gp-bad:#FF7B6B;
  --gp-top:30vh;      /* posizione launcher chat (dall'alto) */
  --gp-bottom:26vh;   /* posizione launcher analyzer (dal basso) */
}
.gp-rail,#gp-chat,#gp-modal{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;box-sizing:border-box}
.gp-rail *,#gp-chat *,#gp-modal *{box-sizing:border-box}

/* ---- LAUNCHER a linguetta, lato sinistro ---- */
.gp-tab{position:fixed;left:0;z-index:99990;display:flex;align-items:center;gap:8px;border:0;cursor:pointer;
  padding:13px 15px 13px 12px;border-radius:0 12px 12px 0;color:#fff;font-weight:700;font-size:13px;
  letter-spacing:.02em;white-space:nowrap;box-shadow:0 8px 24px -8px rgba(10,25,50,.5);
  transform:translateX(calc(-100% + 46px));transition:transform .35s cubic-bezier(.16,1,.3,1)}
.gp-tab:hover,.gp-tab:focus-visible{transform:translateX(0)}
.gp-tab .gp-ic{font-size:19px;order:2;flex-shrink:0}
.gp-tab .gp-lb{order:1}
.gp-tab-chat{top:var(--gp-top);background:linear-gradient(135deg,var(--gp-navy),var(--gp-navy2))}
.gp-tab-scan{bottom:var(--gp-bottom);background:linear-gradient(135deg,var(--gp-cta),#E14A12)}
.gp-tab.pulse{animation:gp-pulse 2.4s infinite}
@keyframes gp-pulse{0%{box-shadow:0 8px 24px -8px rgba(10,25,50,.5),0 0 0 0 rgba(255,90,31,.45)}
  70%{box-shadow:0 8px 24px -8px rgba(10,25,50,.5),0 0 0 14px rgba(255,90,31,0)}
  100%{box-shadow:0 8px 24px -8px rgba(10,25,50,.5),0 0 0 0 rgba(255,90,31,0)}}

/* ---- PANNELLO CHAT (sinistra) ---- */
#gp-chat{position:fixed;left:16px;top:var(--gp-top);z-index:99992;width:370px;max-width:calc(100vw - 32px);
  height:530px;max-height:calc(100vh - 120px);background:#fff;border-radius:16px;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:0 30px 70px -20px rgba(10,25,50,.55);border:1px solid #E5E7EB;
  opacity:0;transform:translateX(-14px) scale(.97);pointer-events:none;transform-origin:left center;transition:.32s cubic-bezier(.16,1,.3,1)}
#gp-chat.open{opacity:1;transform:none;pointer-events:auto}
.gp-head{background:linear-gradient(135deg,var(--gp-navy),var(--gp-navy2));color:#fff;padding:14px 16px;display:flex;gap:11px;align-items:center}
.gp-av{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}
.gp-htxt{flex:1;min-width:0}
.gp-htxt b{font-size:14px;display:block;line-height:1.2}
.gp-htxt small{font-size:11.5px;color:#B9CBE4;display:flex;align-items:center;gap:6px;margin-top:2px}
.gp-live{width:7px;height:7px;border-radius:50%;background:var(--gp-ok);box-shadow:0 0 8px var(--gp-ok);animation:gp-bl 1.6s infinite}
@keyframes gp-bl{50%{opacity:.4}}
.gp-x{background:none;border:0;color:#fff;font-size:17px;cursor:pointer;opacity:.85;padding:4px;line-height:1}
.gp-x.dark{position:absolute;top:8px;right:8px;color:var(--gp-mut);z-index:3;font-size:19px}
.gp-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:#F8FAFC}
.gp-msg{max-width:85%;padding:11px 14px;border-radius:13px;font-size:14.5px;line-height:1.55;white-space:pre-wrap;color:#1C2B3A}
.gp-msg.bot{background:#EEF3F9;border:1px solid #E1E9F2;border-bottom-left-radius:4px;align-self:flex-start}
.gp-msg.usr{background:var(--gp-navy);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.gp-msg.typing i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#9AA9BC;margin-right:4px;animation:gp-tp 1.2s infinite}
.gp-msg.typing i:nth-child(2){animation-delay:.15s}.gp-msg.typing i:nth-child(3){animation-delay:.3s}
@keyframes gp-tp{30%{transform:translateY(-4px)}}
.gp-chips{display:flex;gap:7px;flex-wrap:wrap;padding:0 16px 10px;background:#F8FAFC}
.gp-chips span{font-size:12.5px;color:var(--gp-navy);border:1px solid #D7DEE8;border-radius:999px;padding:7px 12px;cursor:pointer;background:#fff}
.gp-chips span:hover{border-color:var(--gp-cta);color:var(--gp-cta)}
/* link conversione */
.gp-conv{display:flex;gap:6px;padding:9px 12px;background:#fff;border-top:1px solid #EEF1F5}
.gp-conv a{flex:1;text-align:center;font-size:12.5px;font-weight:700;text-decoration:none;color:var(--gp-navy);
  border:1.5px solid #E1E7EF;border-radius:9px;padding:9px 4px}
.gp-conv a:hover{border-color:var(--gp-cta);color:var(--gp-cta)}
.gp-conv.alt{background:transparent;border:0;padding:12px 0 0}
.gp-conv.alt a{color:var(--gp-gold);border-color:#3A5580;background:transparent}
.gp-in{display:flex;gap:8px;padding:12px;border-top:1px solid #EEF1F5;background:#fff}
.gp-in input{flex:1;min-width:0;border:1.5px solid #E1E7EF;border-radius:10px;padding:12px 14px;font-size:15px;outline:none;font-family:inherit}
.gp-in input:focus{border-color:var(--gp-cta)}
.gp-in button{background:var(--gp-cta);border:0;color:#fff;border-radius:10px;width:44px;font-size:16px;cursor:pointer;flex-shrink:0}
/* mini form lead in chat */
.gp-lead input{width:100%;margin:4px 0;padding:11px;border:1.5px solid #D7DEE8;border-radius:8px;font-size:15px;font-family:inherit}
.gp-lead button{width:100%;margin-top:6px;padding:12px;background:var(--gp-cta);color:#fff;border:0;border-radius:9px;font-weight:800;font-size:14px;cursor:pointer}
.gp-lead .np{font-size:11px;color:#8B96A5;margin-top:6px}

/* ---- MODAL ANALYZER ---- */
#gp-modal{position:fixed;inset:0;z-index:99995;background:rgba(6,14,28,.76);display:none;
  align-items:flex-start;justify-content:center;overflow-y:auto;padding:clamp(12px,4vh,44px) 14px}
#gp-modal.open{display:flex}
.gp-box{position:relative;width:100%;max-width:520px;background:#0B1626;border:1px solid var(--gp-line);
  border-radius:16px;padding:26px 22px;margin:auto 0;color:var(--gp-ink);
  box-shadow:0 30px 70px -20px rgba(2,10,25,.7)}
.gp-h{color:#fff;font-size:20px;font-weight:800;line-height:1.3;margin:0 26px 0 0}
.gp-sub{color:var(--gp-mut);font-size:14px;margin:8px 0 16px}
.gp-row{display:flex;gap:9px}
.gp-row input{flex:1;min-width:0;background:#0D1B30;border:1.5px solid var(--gp-line);border-radius:10px;
  padding:14px 15px;color:var(--gp-ink);font-size:15px;outline:none}
.gp-row input::placeholder{color:#5C74A0}
.gp-row input:focus{border-color:var(--gp-cta)}
.gp-row button{white-space:nowrap;background:var(--gp-cta);color:#fff;border:0;border-radius:10px;padding:14px 20px;font-weight:800;font-size:14.5px;cursor:pointer}
.gp-err{color:var(--gp-bad);font-size:13px;margin-top:9px;min-height:16px}
.gp-trust{margin-top:12px;font-size:12px;color:#7C93B8;text-align:center}
.gp-log{font-family:ui-monospace,Consolas,monospace;font-size:13px;min-height:145px;display:flex;flex-direction:column;gap:6px}
.gp-log .ln{opacity:0;transform:translateY(4px);transition:.35s;color:#8FD4A8}
.gp-log .ln.on{opacity:1;transform:none}
.gp-log .ok{color:var(--gp-ok)}.gp-log .warn{color:var(--gp-warn)}.gp-log .dim{color:#5C74A0}
.gp-bar{height:6px;background:#0D1B30;border-radius:99px;margin:16px 0 5px;overflow:hidden}
.gp-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gp-cta),var(--gp-gold));border-radius:99px;transition:width .4s}
.gp-pct{font-size:11px;color:#7C93B8;text-align:right}
.gp-score{display:flex;gap:18px;align-items:center;margin-bottom:18px}
.gp-gauge{position:relative;width:112px;height:112px;flex-shrink:0}
.gp-gauge svg{width:112px;height:112px;transform:rotate(-90deg)}
.gp-gauge circle{fill:none;stroke-width:11;stroke-linecap:round}
.gp-gauge .bg{stroke:#16304F}
.gp-gauge .fg{stroke:url(#gpg);stroke-dasharray:327;stroke-dashoffset:327;transition:stroke-dashoffset 1.4s cubic-bezier(.16,1,.3,1)}
.gp-gnum{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.gp-gnum b{font-size:32px;font-weight:800;color:#fff;line-height:1}
.gp-gnum span{font-size:11px;color:#7C93B8}
.gp-lvl{font-size:21px;font-weight:800;color:var(--gp-bad)}
.gp-score p{font-size:13px;color:var(--gp-mut);margin:5px 0 0}
.gp-dims{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:16px}
.gp-dim{background:#0D1B30;border:1px solid var(--gp-line);border-radius:9px;padding:9px 4px;text-align:center}
.gp-dim b{display:block;font-size:16px;font-weight:800}
.gp-dim span{font-size:9.5px;color:#7C93B8}
.gp-dim.hi b{color:var(--gp-ok)}.gp-dim.mid b{color:var(--gp-warn)}.gp-dim.lo b{color:var(--gp-bad)}
.gp-teasers{display:flex;flex-direction:column;gap:7px;margin-bottom:15px}
.gp-teaser{background:#0D1B30;border:1px solid var(--gp-line);border-radius:10px;padding:10px 12px;font-size:13px;color:#D5E1F2;display:flex;gap:8px;align-items:baseline}
.gp-teaser .tag{font-size:9.5px;font-weight:700;padding:2px 6px;border-radius:5px;white-space:nowrap;flex-shrink:0}
.gp-teaser .tag.alta{background:rgba(255,123,107,.18);color:var(--gp-bad)}
.gp-teaser .tag.media{background:rgba(255,184,77,.18);color:var(--gp-warn)}
.gp-teaser .tag.bassa{background:rgba(143,166,200,.18);color:var(--gp-mut)}
.gp-unlock{background:#122544;border:1px dashed #3A5580;border-radius:12px;padding:16px}
.gp-unlock>p{color:#C7D3E4;font-size:13.5px;margin:0 0 13px;line-height:1.5}
.gp-unlock>p b{color:var(--gp-gold)}
.gp-form{display:flex;flex-direction:column;gap:7px}
.gp-step{font-size:11px;color:#7C93B8;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.gp-form label{font-size:12.5px;color:#9FB6DA;font-weight:600}
.gp-fw{position:relative}
.gp-form input{width:100%;background:#0D1B30;border:1.5px solid var(--gp-line);border-radius:9px;padding:13px 38px 13px 13px;color:var(--gp-ink);font-size:15px;outline:none}
.gp-form input:focus{border-color:var(--gp-cta)}
.gp-vm{position:absolute;right:11px;top:50%;transform:translateY(-50%);opacity:0;transition:.3s}
.gp-vm.show{opacity:1}
.gp-fe{font-size:12px;color:var(--gp-bad);display:none}
.gp-form button{background:var(--gp-cta);color:#fff;border:0;border-radius:10px;padding:14px;font-weight:800;font-size:14.5px;cursor:pointer;margin-top:2px}
.gp-done{font-size:32px;text-align:center}
#gp-ok p{color:#C7D3E4;font-size:14px;text-align:center;margin:6px 0 0}
#gp-ok b{color:var(--gp-ok)}
.gp-cal{display:block;text-align:center;margin-top:12px;color:var(--gp-gold);font-size:13.5px;font-weight:700;text-decoration:none;border:1.5px solid #3A5580;border-radius:9px;padding:11px}
.gp-priv{margin-top:11px;font-size:11px;color:#7C93B8;text-align:center}
.gp-note{margin-top:11px;font-size:10.5px;color:#5C74A0;text-align:center}

/* ---- MOBILE ---- */
@media(max-width:600px){
  .gp-tab{transform:translateX(calc(-100% + 40px));padding:11px 13px 11px 10px;font-size:12px}
  .gp-tab .gp-ic{font-size:17px}
  #gp-chat{left:10px;right:10px;width:auto;max-width:none;top:auto;bottom:12px;height:min(72vh,520px);
    transform:translateY(14px) scale(.97);transform-origin:bottom center}
  #gp-chat.open{transform:none}
  .gp-box{padding:22px 16px}
  .gp-row{flex-direction:column}.gp-row button{width:100%}
  .gp-score{flex-direction:column;text-align:center;gap:10px}
  .gp-dims{gap:4px}.gp-dim b{font-size:14px}.gp-dim span{font-size:9px}
}
@media(prefers-reduced-motion:reduce){
  .gp-tab,#gp-chat,.gp-gauge .fg{transition:none!important}
  .gp-tab.pulse{animation:none}
}

.gp-ainote{padding:7px 12px 10px;font-size:10.5px;line-height:1.4;color:#8B96A5;text-align:center;background:#fff}
