/* la chat di lato (anche nella pagina del viaggio) */
.asst { --a-bg: #0f1d38; --a-ink: #e6eefa; --a-soft: #8fa3c4; --a-acc: #19d3c5; --a-line: rgba(150,190,240,0.16); font-family: Inter, system-ui, sans-serif; }
.asst-bt { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); z-index: 80; display: flex; align-items: center; gap: 10px; padding: 10px 18px 10px 10px; border-radius: 999px; border: 0; cursor: pointer;
  background: rgba(15,29,56,0.92); border: 1px solid rgba(150,190,240,0.18); color: #e6eefa; font: 500 14px Inter, sans-serif; box-shadow: 0 18px 40px -14px rgba(0,0,0,0.55); transition: transform 0.25s, opacity 0.25s; }
.asst-bt span { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle at 35% 30%, #7ff5e6, #0ea5a0 70%); color: #04212a; font-size: 16px; }
.asst-bt:hover { transform: translateY(-2px); }
.asst.aperto .asst-bt { opacity: 0; pointer-events: none; transform: scale(0.9); }
.asst-p { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); z-index: 81; width: min(380px, calc(100vw - 32px)); height: min(560px, calc(100vh - 32px));
  display: flex; flex-direction: column; background: var(--a-bg); color: var(--a-ink); border-radius: 24px; overflow: hidden; box-shadow: 0 40px 90px -30px rgba(0,0,0,0.6), 0 0 0 1px var(--a-line); animation: asstsu 0.35s cubic-bezier(.2,.8,.2,1); }
.asst-p[hidden] { display: none; }
.asst-p.mini { height: 64px; }
.asst-p.mini .asst-m, .asst-p.mini .asst-s, .asst-p.mini .asst-f { display: none; }
.asst-p.trascina { box-shadow: 0 50px 100px -30px rgba(0,0,0,0.7), 0 0 0 2px var(--a-acc); }
@keyframes asstsu { from { opacity: 0; transform: translateY(16px) scale(0.98); } }
.asst-h { display: flex; align-items: center; gap: 12px; padding: 12px 12px 12px 14px; background: #0a1428; border-bottom: 1px solid var(--a-line); color: #e6eefa; cursor: grab; user-select: none; touch-action: none; }
.asst-p.trascina .asst-h { cursor: grabbing; }
.asst-logo { width: 38px; height: 42px; display: grid; place-items: center; }
.asst-logo .logo { width: 100%; height: 100%; filter: drop-shadow(0 0 8px rgba(25,211,197,0.35)); }
.asst-h div { flex: 1; } .asst-h b { display: block; font: 700 17px 'Space Grotesk', Inter, sans-serif; } .asst-h small { color: rgba(230,238,250,0.6); font-size: 12px; }
.asst-h button { width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgba(255,255,255,0.1); color: #e6eefa; font-size: 18px; cursor: pointer; }
.asst-m { flex: 1; overflow-y: auto; padding: 16px 14px 6px; display: flex; flex-direction: column; gap: 10px; }
.asst-b { max-width: 88%; }
.asst-b p { margin: 0; padding: 10px 14px; border-radius: 18px; font-size: 14.5px; line-height: 1.5; }
.asst-b.atlante p { background: #17294b; border-bottom-left-radius: 6px; }
.asst-b.io { align-self: flex-end; } .asst-b.io p { background: linear-gradient(135deg, #2fe6d4, #10bfb3); color: #04212a; border-bottom-right-radius: 6px; }
.asst-b.attesa p { color: var(--a-soft); animation: pulsa 1s infinite alternate; }
.asst-a { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.asst-a button, .asst-s button { font: 500 13px Inter, sans-serif; padding: 8px 12px; border-radius: 999px; border: 1px solid rgba(25,211,197,0.45); background: rgba(255,255,255,0.04); color: #6ff3e3; cursor: pointer; text-align: left; }
.asst-a button:hover, .asst-s button:hover { background: rgba(25,211,197,0.12); }
.asst-a button.ok { border-color: #2f8f5b; color: #2f8f5b; }
.asst-s { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 14px 8px; }
.asst-f { display: flex; gap: 8px; padding: 10px 12px 12px; border-top: 1px solid var(--a-line); }
.asst-f input { flex: 1; min-width: 0; font: 15px Inter, sans-serif; padding: 11px 14px; border-radius: 999px; border: 1px solid var(--a-line); background: rgba(255,255,255,0.06); color: var(--a-ink); outline: none; }
.asst-f input:focus { border-color: var(--a-acc); }
.asst-f button { width: 42px; height: 42px; flex: none; border-radius: 50%; border: 0; background: linear-gradient(135deg, #2fe6d4, #10bfb3); color: #04212a; font-size: 18px; cursor: pointer; }
@keyframes pulsa { to { opacity: 0.4; } }
@media (max-width: 640px) { .asst-p { left: 8px !important; right: 8px !important; top: auto !important; bottom: 8px !important; width: auto; height: 72vh; } .asst-bt b { display: none; } .asst-bt { padding: 8px; } }
@media print { .asst { display: none !important; } }
