.cai-assistant {
  --cai-primary: #005ea8;
  --cai-primary-dark: #004577;
  --cai-text: #17324d;
  --cai-muted: #455b71;
  --cai-surface: #ffffff;
  --cai-surface-alt: #f3f6f9;
  --cai-border: #c8d2dc;
  --cai-focus: #ffcc00;
  box-sizing: border-box;
  position: fixed;
  z-index: 99990;
  right: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  color: var(--cai-text);
  font: 400 1rem/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.cai-assistant *, .cai-assistant *::before, .cai-assistant *::after { box-sizing: inherit; }
.cai-assistant button, .cai-assistant a, .cai-assistant textarea { font: inherit; }
.cai-assistant button, .cai-assistant__action { min-height: 44px; min-width: 44px; }
.cai-assistant__launcher {
  display: inline-flex; align-items: center; gap: .55rem; border: 0; border-radius: 999px; padding: .7rem 1rem;
  background: var(--cai-primary); color: #fff; cursor: pointer; box-shadow: 0 6px 24px rgba(23,50,77,.22);
}
.cai-assistant__launcher:hover { background: var(--cai-primary-dark); }
.cai-assistant__launcher-icon { display:inline-grid; place-items:center; width:1.6rem; height:1.6rem; border:2px solid currentColor; border-radius:50%; font-weight:700; }
.cai-assistant__panel {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(max(16px, env(safe-area-inset-bottom)) + 72px);
  width: min(760px, calc(100vw - 40px));
  height: min(620px, calc(100dvh - 104px));
  max-height: min(620px, calc(100dvh - 104px));
  overflow: hidden;
  border: 1px solid var(--cai-border);
  border-radius: 16px;
  background: var(--cai-surface);
  box-shadow: 0 16px 48px rgba(23,50,77,.25);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}
.cai-assistant__panel[hidden] { display: none; }
.cai-assistant__header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem; border-bottom:1px solid var(--cai-border); background:var(--cai-surface); }
.cai-assistant__header-copy { min-width:0; flex:1 1 auto; }
.cai-assistant__header-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:nowrap; gap:.5rem; flex:0 0 auto; }
.cai-assistant__title { margin:0; font-size:1.12rem; line-height:1.25; }
.cai-assistant__close { border:0; border-radius:8px; background:transparent; color:var(--cai-text); cursor:pointer; font-size:1.6rem; line-height:1; }

/* Avviso compatto dopo il campo domanda: sempre visibile, non blocca la digitazione.
   I dettagli restano facoltativi e scorrono dentro il proprio riquadro. */
.cai-assistant__disclosure { margin:.65rem 0 0; padding:.55rem .65rem .6rem; border:1px solid var(--cai-border); border-radius:8px; background:#f7f9fb; font-size:.9rem; line-height:1.4; }
.cai-assistant__disclosure-short { margin:0 0 .5rem; font-size:.95rem; line-height:1.35; }
.cai-assistant__privacy-warning { margin:0 0 .45rem; padding:.55rem .65rem; border-left:4px solid #b53b00; background:#fff3ed; font-size:.9rem; line-height:1.45; }
.cai-assistant__info-links { display:flex; flex-wrap:wrap; align-items:flex-start; gap:.2rem 1.25rem; }
.cai-assistant__notice { color:var(--cai-text); margin:0; }
.cai-assistant__notice summary { min-height:36px; display:flex; align-items:center; cursor:pointer; color:var(--cai-primary-dark); text-decoration:underline; text-underline-offset:.18em; padding:.15rem 0; font-size:.875rem; line-height:1.25; font-weight:700; }
.cai-assistant__notice-body { max-height:min(20dvh, 140px); overflow-y:auto; overscroll-behavior:contain; margin-top:.15rem; padding:.45rem .35rem .35rem 0; border-top:1px solid var(--cai-border); font-size:.875rem; line-height:1.45; }
.cai-assistant__notice-body p { margin:0 0 .45rem; }
.cai-assistant__notice-body p:last-child { margin-bottom:0; }
.cai-assistant__welcome { font-weight:700; }
.cai-assistant__privacy-shortcut { margin:0; font-size:.875rem; line-height:1.25; }
.cai-assistant__privacy-shortcut a { min-height:36px; display:inline-flex; align-items:center; font-weight:700; color:var(--cai-primary-dark); text-underline-offset:.18em; }
.cai-assistant__privacy-shortcut a:hover { text-decoration-thickness:2px; }
.cai-assistant__log { min-height:0; overflow:auto; padding:1rem 1.1rem; overscroll-behavior:contain; scroll-padding:1rem; }
.cai-assistant__message { margin:0 0 1rem; max-width:88%; }
.cai-assistant__message--user { margin-left:auto; }
.cai-assistant__message-label { margin:0 0 .25rem; font-size:.8rem; font-weight:700; }
.cai-assistant__message-body { padding:.75rem .85rem; border-radius:12px; background:var(--cai-surface-alt); overflow-wrap:anywhere; }
.cai-assistant__message--user .cai-assistant__message-body { background:#e8f2fb; }
.cai-assistant__message--pending .cai-assistant__message-body { font-style:italic; color:var(--cai-muted); }
.cai-assistant__message--pending .cai-assistant__message-body::after { content:'  ···'; letter-spacing:.08em; }
.cai-assistant__message-body p { margin:.2rem 0 .65rem; }
.cai-assistant__message-body p:last-child { margin-bottom:.2rem; }
.cai-assistant__citation { font-weight:700; }
.cai-assistant__actions { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.5rem; }
.cai-assistant__action { display:inline-flex; align-items:center; padding:.5rem .75rem; border:2px solid var(--cai-primary); border-radius:8px; color:var(--cai-primary-dark); text-decoration:none; font-weight:700; }
.cai-assistant__action:hover { background:#eef7ff; }
.cai-assistant__sources { margin-top:.6rem; font-size:.875rem; }
.cai-assistant__sources summary { cursor:pointer; font-weight:700; min-height:44px; display:flex; align-items:center; }
.cai-assistant__sources ul { margin:.35rem 0 0; padding-left:1.25rem; }
.cai-assistant__sources li { margin:.35rem 0; }
.cai-assistant__system { padding:.75rem; border-left:4px solid #b53b00; background:#fff3ed; }
.cai-assistant__form { min-height:0; overflow-y:auto; padding:.65rem 1rem .8rem; border-top:1px solid var(--cai-border); background:var(--cai-surface); }
.cai-assistant__label { display:block; font-weight:700; margin-bottom:.3rem; font-size:.95rem; line-height:1.3; }
.cai-assistant__input { width:100%; resize:vertical; min-height:84px; max-height:160px; padding:.65rem; border:2px solid #66788a; border-radius:8px; color:var(--cai-text); background:var(--cai-surface); font-size:.95rem; line-height:1.4; }
.cai-assistant__controls { display:flex; justify-content:space-between; align-items:center; gap:.6rem; margin-top:.65rem; flex-wrap:wrap; }
.cai-assistant__reset, .cai-assistant__send { border-radius:8px; padding:.62rem .95rem; cursor:pointer; font-size:.92rem; }
.cai-assistant__reset--secondary { margin-right:auto; }
.cai-assistant__reset { border:2px solid var(--cai-primary); background:#fff; color:var(--cai-primary-dark); font-weight:700; white-space:nowrap; }
.cai-assistant__reset:hover { background:#eef7ff; }
.cai-assistant__send { border:2px solid var(--cai-primary); background:var(--cai-primary); color:#fff; font-weight:700; }
.cai-assistant__send:hover { background:var(--cai-primary-dark); border-color:var(--cai-primary-dark); }
.cai-assistant button:disabled, .cai-assistant textarea:disabled { opacity:.65; cursor:not-allowed; }
.cai-assistant__sr-only, .cai-assistant__sr-status { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.cai-assistant :focus-visible { outline:4px solid var(--cai-focus); outline-offset:3px; box-shadow:0 0 0 2px #000; }

@media (max-width: 900px) {
  /* Widget chiuso a destra: lascia libera l'area cookie nell'angolo inferiore sinistro. */
  .cai-assistant { left: auto; right: max(12px, env(safe-area-inset-right)); width: max-content; max-width: calc(100vw - 24px); bottom: max(12px, env(safe-area-inset-bottom)); }
  .cai-assistant__panel { left:12px; right:12px; bottom: calc(max(12px, env(safe-area-inset-bottom)) + 72px); width:auto; height:min(620px, calc(100dvh - 96px)); max-height:calc(100dvh - 96px); }
  .cai-assistant__header-actions { flex-wrap:wrap; justify-content:flex-end; }
}
@media (max-width: 560px) {
  .cai-assistant { left: auto; right: max(8px, env(safe-area-inset-right)); }
  .cai-assistant__panel { left:auto; right:max(8px, env(safe-area-inset-right)); width:min(440px, calc(100vw - 16px)); bottom:calc(max(8px, env(safe-area-inset-bottom)) + 64px); height:calc(100dvh - 88px); max-height:calc(100dvh - 88px); border-radius:14px; }
  .cai-assistant__launcher-label { display:none; }
  .cai-assistant__header { padding:.7rem .8rem; }
  .cai-assistant__header-copy { flex:1 1 auto; }
  .cai-assistant__header-actions { width:auto; flex-wrap:nowrap; }
  .cai-assistant__controls { flex-direction:row; align-items:center; }
  .cai-assistant__reset--secondary { flex:1 1 auto; }
  .cai-assistant__send { flex:0 0 auto; }
  .cai-assistant__message { max-width:96%; }
  .cai-assistant__form { padding:.5rem .7rem .65rem; }
  .cai-assistant__disclosure { padding:.5rem .55rem .55rem; font-size:.86rem; }
  .cai-assistant__disclosure-short { font-size:.9rem; }
  .cai-assistant__privacy-warning { font-size:.86rem; padding:.5rem .55rem; }
  .cai-assistant__info-links { gap:.1rem .85rem; }
  .cai-assistant__notice summary, .cai-assistant__privacy-shortcut { font-size:.82rem; }
  .cai-assistant__notice-body { max-height:min(17dvh, 100px); font-size:.84rem; }
  .cai-assistant__label, .cai-assistant__input { font-size:.9rem; }
  .cai-assistant__input { min-height:72px; }
}
@media (prefers-reduced-motion: reduce) {
  .cai-assistant *, .cai-assistant *::before, .cai-assistant *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
@media (forced-colors: active) {
  .cai-assistant__launcher, .cai-assistant__send, .cai-assistant__action, .cai-assistant__reset, .cai-assistant__input { forced-color-adjust:auto; border:2px solid ButtonText; }
  .cai-assistant :focus-visible { outline:3px solid Highlight; box-shadow:none; }
}
