/* Punto Ticino News AI — 1.5.0
   Design editoriale bianco/rosso/nero coerente con il tema, solo desktop.
   Le classi e gli ID originali sono conservati per compatibilità JS. */
.ptn-chat-nav-button {
  display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;
  min-height:36px;padding:8px 13px;border:1px solid rgba(255,133,148,.5);
  border-radius:8px;background:#b81028;color:#fff;
  font:800 12px/1.2 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  letter-spacing:.01em;white-space:nowrap;cursor:pointer;
  box-shadow:none;transition:background .16s,border-color .16s,transform .16s;
}
.ptn-chat-nav-button:hover,.ptn-chat-nav-button:focus-visible {background:#d11936;border-color:#f69ba8;color:#fff;transform:translateY(-1px)}
.ptn-chat-nav-button svg {flex:0 0 auto;color:#fff;width:16px;height:16px}
.ptn-chat-overlay[hidden] {display:none!important}
.ptn-chat-overlay {
  position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;
  padding:26px;background:rgba(15,20,25,.61);backdrop-filter:blur(4px);
}
.ptn-chat-dialog {
  display:flex;flex-direction:column;width:min(584px,100%);height:min(690px,89vh);
  max-height:calc(100vh - 45px);overflow:hidden;outline:none;
  background:#fff;color:#1c2025;border:1px solid #e2e1df;border-radius:14px;
  box-shadow:0 26px 90px rgba(15,19,27,.3);text-align:left;
  font:400 14px/1.55 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
.ptn-chat-dialog * {box-sizing:border-box}
.ptn-chat-header {
  display:flex;gap:13px;align-items:center;padding:20px 23px 19px;
  border-top:4px solid #c5101e;border-bottom:1px solid #e9e4e5;
  background:linear-gradient(115deg,#fff 5%,#fff 55%,#fff5f5 100%);color:#1b1e23;flex:0 0 auto;
}
.ptn-chat-symbol {
  width:45px;height:45px;display:grid;place-items:center;flex:0 0 45px;
  color:#c5101e;background:#fff3f4;border:1px solid #f4cfd3;border-radius:11px;
  font:800 26px/1 Inter,Arial,sans-serif;
}
.ptn-chat-header-copy {display:flex;flex-direction:column;min-width:0}
.ptn-chat-eyebrow {font-size:9px;line-height:1.4;letter-spacing:.13em;font-weight:900;color:#bd1028;margin-bottom:2px}
.ptn-chat-eyebrow span {color:#9e9da0;padding:0 2px}
.ptn-chat-header strong {display:block;color:#1c2025;font:700 23px/1.18 Georgia,"Times New Roman",serif;letter-spacing:-.025em}
.ptn-chat-header small {display:block;margin-top:4px;color:#73777f;font-size:11px;line-height:1.45;font-weight:550}
.ptn-chat-close {
  flex:0 0 35px;margin-left:auto;display:grid;place-items:center;
  width:35px;height:35px;border:1px solid #e5e3e3;border-radius:50%;
  background:#fff;color:#535860;font:400 25px/1 Arial,sans-serif;cursor:pointer;
}
.ptn-chat-close:hover,.ptn-chat-close:focus-visible {background:#fff0f2;color:#ac0f23;border-color:#edbdc3}
.ptn-chat-messages {
  flex:1;min-height:80px;overflow-y:auto;display:flex;flex-direction:column;
  align-items:flex-start;gap:12px;padding:22px 22px 16px;
  background:#faf9f9;overscroll-behavior:contain;
}
.ptn-chat-bubble {
  max-width:90%;padding:13px 15px;white-space:pre-wrap;overflow-wrap:anywhere;
  background:#fff;color:#242931;border:1px solid #e8e6e4;
  border-radius:12px 12px 12px 3px;
  font-size:13px;line-height:1.64;box-shadow:0 2px 9px rgba(17,19,22,.028);
}
.ptn-chat-bubble.user {
  align-self:flex-end;background:#fff0f1;color:#751022;border-color:#f1cbd0;
  border-radius:12px 12px 3px 12px;font-weight:540;
}
.ptn-chat-sources {display:flex;flex-direction:column;gap:5px;border-top:1px solid #efe0e2;margin-top:12px;padding-top:10px;font-size:11px}
.ptn-chat-sources strong {color:#595f66}
.ptn-chat-sources a {color:#ae1028;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.ptn-chat-sources a:hover {color:#7b0718}
.ptn-chat-login {padding:19px 23px 21px;border-top:1px solid #eee;background:#fff;line-height:1.6}
.ptn-chat-login[hidden],.ptn-chat-compose[hidden] {display:none!important}
.ptn-chat-login p {margin:0 0 14px;color:#2b2e32}
.ptn-chat-login-button {
  background:#b80e29;color:#fff!important;text-decoration:none!important;
  padding:10px 17px;border-radius:7px;font-weight:800;display:inline-block;margin-right:14px;
}
.ptn-chat-login-button:hover {background:#960b20}
.ptn-chat-login a:not(.ptn-chat-login-button) {font-weight:700;color:#a90c24;text-decoration:underline;text-underline-offset:2px}
.ptn-chat-compose {flex:0 0 auto;padding:15px 20px 13px;border-top:1px solid #e6e5e4;background:#fff}
.ptn-chat-consent {display:flex;gap:10px;align-items:flex-start;font-size:11px;line-height:1.52;color:#656972;margin:0 0 12px}
.ptn-chat-consent[hidden] {display:none!important}
.ptn-chat-consent input {margin-top:3px;accent-color:#ba102a;flex:0 0 auto}
.ptn-chat-consent a {color:#a20b25;text-decoration:underline;font-weight:750}
#ptn-chat-form {display:flex;gap:9px;align-items:stretch;margin:0}
#ptn-chat-input {
  resize:vertical;min-height:51px;max-height:130px;flex:1;min-width:0;
  border:1px solid #d5d5d4;background:#fff;color:#242931;
  border-radius:8px;padding:12px 13px;font:inherit;font-size:13px;line-height:1.45;outline:0;
}
#ptn-chat-input::placeholder {color:#858990}
#ptn-chat-input:focus {border-color:#bb1833;box-shadow:0 0 0 3px rgba(187,24,51,.11)}
#ptn-chat-submit {
  display:grid;place-items:center;flex:0 0 49px;border:0;border-radius:8px;
  background:#bb102c;color:#fff;font-size:19px;cursor:pointer;
}
#ptn-chat-submit:hover:not(:disabled) {background:#960d25}
#ptn-chat-submit:disabled {opacity:.5;cursor:wait}
.ptn-chat-compose-foot {display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}
.ptn-chat-compose-foot small {color:#848891;font-size:10px}
#ptn-chat-clear {color:#ad112b;border:0;background:transparent;text-decoration:underline;text-underline-offset:2px;font-size:11px;cursor:pointer;white-space:nowrap;padding:4px 0}
#ptn-chat-status[data-moderation-error="true"] {color:#b3122c;font-weight:700}
.ptn-chat-is-open {overflow:hidden}
@media(max-width:1023px) {.ptn-chat-nav-button,.ptn-chat-overlay{display:none!important}}
@media(prefers-reduced-motion:reduce) {.ptn-chat-nav-button{transition:none}}
