/* chat60 — website60 chat widget
   Token-driven: reads --color-*, --radius-*, --shadow-*, --space-*,
   --font-body, --font-head, --z-*, --duration-* from the host page.
   Nothing hardcoded — swap the tokens and the widget re-skins. */

.chat60-launcher{
  position:fixed;
  right:var(--space-5);
  bottom:var(--space-5);
  z-index:var(--z-widget-launcher);
  display:inline-flex;
  align-items:center;
  gap:var(--space-2);
  padding:14px 22px 14px 18px;
  background:var(--color-primary);
  color:var(--color-primary-contrast);
  font-family:var(--font-body);
  font-size:var(--font-size-base);
  font-weight:500;
  letter-spacing:.01em;
  border:none;
  border-radius:var(--radius-full);
  cursor:pointer;
  box-shadow:var(--shadow-widget);
  transition:transform var(--duration-fast) var(--ease-standard),
             box-shadow var(--duration-fast) var(--ease-standard);
}
.chat60-launcher:hover{transform:translateY(-1px)}
.chat60-launcher:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:3px}
.chat60-launcher-icon{
  width:22px;height:22px;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
}
.chat60-launcher-icon svg{width:100%;height:100%;fill:currentColor}
.chat60-launcher[hidden]{display:none}

.chat60-panel{
  position:fixed;
  right:var(--space-5);
  bottom:var(--space-5);
  z-index:var(--z-widget-panel);
  width:min(400px, calc(100vw - 32px));
  height:min(600px, calc(100vh - 100px));
  max-height:600px;
  display:flex;
  flex-direction:column;
  background:var(--color-surface);
  color:var(--color-text);
  font-family:var(--font-body);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-widget);
  animation:chat60-in var(--duration-base) var(--ease-standard);
}
.chat60-panel[hidden]{display:none}
@keyframes chat60-in{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:560px){
  .chat60-panel{
    right:0;bottom:0;left:0;top:0;
    width:100%;height:100dvh;max-height:none;
    border-radius:0;border:none;
  }
}

.chat60-header{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--space-3);
  padding:var(--space-4) var(--space-5);
  background:var(--color-surface-2);
  border-bottom:1px solid var(--color-border-soft);
}
.chat60-title{
  font-family:var(--font-head);
  font-size:var(--font-size-lg);
  font-weight:500;
  margin:0;
  line-height:var(--line-height-tight);
}
.chat60-subtitle{
  font-size:var(--font-size-xs);
  color:var(--color-text-muted);
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-top:2px;
}
.chat60-header-actions{display:flex;gap:var(--space-2);align-items:center}
.chat60-callback-btn{
  padding:8px 14px;
  background:transparent;
  color:var(--color-text-accent);
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  font-family:var(--font-body);
  font-size:var(--font-size-xs);
  font-weight:500;
  letter-spacing:.06em;
  text-transform:uppercase;
  cursor:pointer;
  transition:border-color var(--duration-fast) var(--ease-standard);
}
.chat60-callback-btn:hover{border-color:var(--color-text-accent)}
.chat60-callback-btn:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}
.chat60-close{
  width:32px;height:32px;
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;color:var(--color-text-muted);
  border:none;border-radius:var(--radius-sm);
  cursor:pointer;
  transition:color var(--duration-fast) var(--ease-standard),
             background var(--duration-fast) var(--ease-standard);
}
.chat60-close:hover{color:var(--color-text);background:var(--color-border-soft)}
.chat60-close:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}
.chat60-close svg{width:18px;height:18px;fill:currentColor}

.chat60-messages{
  flex:1;
  overflow-y:auto;
  padding:var(--space-5);
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
  scroll-behavior:smooth;
}
.chat60-msg{
  max-width:85%;
  padding:12px 16px;
  border-radius:var(--radius-lg);
  font-size:var(--font-size-base);
  line-height:1.5;
  word-wrap:break-word;
  white-space:pre-wrap;
}
.chat60-msg-bot{
  align-self:flex-start;
  background:var(--color-surface-2);
  color:var(--color-text);
  border-bottom-left-radius:var(--radius-sm);
}
.chat60-msg-user{
  align-self:flex-end;
  background:var(--color-primary);
  color:var(--color-primary-contrast);
  border-bottom-right-radius:var(--radius-sm);
}
.chat60-msg-typing{
  display:inline-flex;gap:4px;padding:14px 16px;
}
.chat60-msg-typing span{
  width:8px;height:8px;border-radius:var(--radius-full);
  background:var(--color-text-muted);
  animation:chat60-blink 1.4s infinite both;
}
.chat60-msg-typing span:nth-child(2){animation-delay:.2s}
.chat60-msg-typing span:nth-child(3){animation-delay:.4s}
@keyframes chat60-blink{
  0%,80%,100%{opacity:.3}
  40%{opacity:1}
}

.chat60-input-row{
  display:flex;gap:var(--space-2);
  padding:var(--space-4);
  border-top:1px solid var(--color-border-soft);
  background:var(--color-surface);
}
.chat60-input{
  flex:1;
  padding:12px 14px;
  background:var(--color-surface-2);
  color:var(--color-text);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  font-family:var(--font-body);
  font-size:var(--font-size-base);
  resize:none;
  min-height:44px;
  max-height:120px;
}
.chat60-input:focus{outline:none;border-color:var(--color-focus-ring)}
.chat60-input::placeholder{color:var(--color-text-muted)}
.chat60-send{
  align-self:flex-end;
  padding:12px 18px;
  background:var(--color-primary);
  color:var(--color-primary-contrast);
  border:none;border-radius:var(--radius-md);
  font-family:var(--font-body);
  font-size:var(--font-size-base);
  font-weight:500;
  cursor:pointer;
  transition:opacity var(--duration-fast) var(--ease-standard);
}
.chat60-send:hover{opacity:.9}
.chat60-send:disabled{opacity:.4;cursor:not-allowed}
.chat60-send:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}

.chat60-form{
  display:flex;flex-direction:column;gap:var(--space-3);
  padding:var(--space-5);
  background:var(--color-surface-2);
  border-top:1px solid var(--color-border-soft);
}
.chat60-form-title{
  font-family:var(--font-head);
  font-size:var(--font-size-lg);
  color:var(--color-text);
  margin:0 0 var(--space-2);
}
.chat60-form label{
  display:flex;flex-direction:column;gap:6px;
  font-size:var(--font-size-xs);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--color-text-muted);
}
.chat60-form input,.chat60-form textarea{
  padding:10px 12px;
  background:var(--color-surface);
  color:var(--color-text);
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  font-family:var(--font-body);
  font-size:var(--font-size-base);
  text-transform:none;letter-spacing:normal;
}
.chat60-form input:focus,.chat60-form textarea:focus{
  outline:none;border-color:var(--color-focus-ring);
}
.chat60-form textarea{resize:vertical;min-height:60px;max-height:120px}
.chat60-honeypot{
  position:absolute!important;
  left:-10000px!important;top:auto;
  width:1px!important;height:1px!important;
  overflow:hidden;
}
.chat60-form-row{display:flex;gap:var(--space-2);justify-content:flex-end}
.chat60-form-cancel{
  padding:10px 18px;
  background:transparent;color:var(--color-text-muted);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  font-family:var(--font-body);font-size:var(--font-size-base);
  cursor:pointer;
}
.chat60-form-cancel:hover{color:var(--color-text)}
.chat60-form-submit{
  padding:10px 22px;
  background:var(--color-primary);color:var(--color-primary-contrast);
  border:none;border-radius:var(--radius-md);
  font-family:var(--font-body);font-size:var(--font-size-base);
  font-weight:500;cursor:pointer;
}
.chat60-form-submit:disabled{opacity:.4;cursor:not-allowed}
.chat60-form-error{
  color:var(--color-danger);
  font-size:var(--font-size-sm);
  margin:0;
}
.chat60-form-success{
  text-align:center;color:var(--color-text-accent);
  font-family:var(--font-head);font-size:var(--font-size-lg);
  padding:var(--space-6) var(--space-5);
  font-style:italic;
}

@media(prefers-reduced-motion:reduce){
  .chat60-launcher,.chat60-panel,.chat60-send,.chat60-close,
  .chat60-callback-btn,.chat60-msg-typing span{
    transition:none!important;animation:none!important;
  }
}
