/* Studio Infinite website chat assistant */
.si-chat{
  --c-ground:#0D1317;
  --c-surface:#151E24;
  --c-raised:#1C2830;
  --c-line:#26343D;
  --c-tungsten:#E39B3C;
  --c-daylight:#6FA8C7;
  --c-text:#DEE6EA;
  --c-muted:#8B9BA4;
  position:fixed;
  right:max(16px, env(safe-area-inset-right, 0px));
  bottom:calc(16px + env(safe-area-inset-bottom, 0px));
  z-index:1001;
  font-family:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--c-text);
  color-scheme:dark;
}
.si-chat *{box-sizing:border-box;}

/* launcher */
.si-chat__launch{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 18px 12px 16px;
  border:1px solid rgba(227,155,60,0.45);
  border-radius:999px;
  background:rgba(21,30,36,0.92);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  color:var(--c-text);
  font:600 14px/1 "IBM Plex Sans",sans-serif;
  cursor:pointer;
  box-shadow:0 10px 30px rgba(0,0,0,0.45), 0 0 0 0 rgba(227,155,60,0);
  transition:box-shadow .25s, border-color .25s, transform .15s;
}
.si-chat__launch:hover{border-color:var(--c-tungsten);box-shadow:0 10px 30px rgba(0,0,0,0.45), 0 0 24px rgba(227,155,60,0.25);}
.si-chat__launch:active{transform:translateY(1px);}
.si-chat__dot{
  position:relative;
  width:8px;height:8px;
  border-radius:50%;
  background:var(--c-tungsten);
  box-shadow:0 0 10px rgba(227,155,60,0.7);
}
.si-chat__dot::after{
  content:"";
  position:absolute;
  inset:-5px;
  border-radius:50%;
  border:1px solid rgba(227,155,60,0.5);
  animation:si-ping 2.2s ease-out infinite;
}
@keyframes si-ping{0%{transform:scale(.6);opacity:.8;}100%{transform:scale(1.8);opacity:0;}}
.si-chat[data-open="true"] .si-chat__launch{display:none;}

/* panel */
.si-chat__panel{
  position:relative;
  display:flex;
  flex-direction:column;
  width:min(380px, calc(100vw - 32px));
  height:min(560px, calc(100vh - 48px));
  background:var(--c-surface);
  border:1px solid var(--c-line);
  border-radius:4px;
  box-shadow:0 24px 60px rgba(0,0,0,0.55);
  overflow:hidden;
  animation:si-rise .28s cubic-bezier(.22,1,.36,1);
}
.si-chat__panel[hidden]{display:none!important;}
@keyframes si-rise{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.si-chat__panel::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:2px;
  background:linear-gradient(90deg,var(--c-tungsten),var(--c-daylight),transparent);
  opacity:.6;
  z-index:2;
}

.si-chat__head{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 14px 12px 16px;
  border-bottom:1px solid var(--c-line);
  background:var(--c-raised);
}
.si-chat__title{flex:1;min-width:0;}
.si-chat__label{
  display:block;
  font:500 10px/1.2 "IBM Plex Mono",ui-monospace,Menlo,monospace;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--c-muted);
}
.si-chat__name{
  display:block;
  margin-top:3px;
  font:800 15px/1.1 "Archivo",Helvetica,sans-serif;
  font-variation-settings:"wdth" 118;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.si-chat__name span{color:var(--c-tungsten);}
.si-chat__close{
  width:32px;height:32px;
  display:grid;place-items:center;
  border:1px solid var(--c-line);
  border-radius:3px;
  background:transparent;
  color:var(--c-muted);
  cursor:pointer;
  transition:color .2s,border-color .2s;
}
.si-chat__close:hover{color:var(--c-text);border-color:var(--c-muted);}

/* messages */
.si-chat__log{
  flex:1;
  overflow-y:auto;
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:10px;
  scroll-behavior:smooth;
  overscroll-behavior:contain;
}
.si-chat__msg{
  max-width:88%;
  padding:10px 13px;
  border-radius:3px;
  font-size:14px;
  line-height:1.55;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.si-chat__msg--bot{
  align-self:flex-start;
  background:var(--c-raised);
  border:1px solid var(--c-line);
  border-left:2px solid var(--c-tungsten);
}
.si-chat__msg--user{
  align-self:flex-end;
  background:rgba(227,155,60,0.14);
  border:1px solid rgba(227,155,60,0.35);
}
.si-chat__msg a{color:var(--c-daylight);text-underline-offset:3px;}
.si-chat__msg strong{color:#fff;font-weight:600;}
.si-chat__msg--note{
  align-self:center;
  max-width:100%;
  padding:6px 10px;
  border:1px dashed rgba(227,155,60,0.5);
  color:var(--c-muted);
  font:500 11px/1.4 "IBM Plex Mono",monospace;
  letter-spacing:.06em;
  text-align:center;
}

.si-chat__typing{display:inline-flex;gap:4px;align-items:center;height:20px;}
.si-chat__typing i{
  width:6px;height:6px;border-radius:50%;
  background:var(--c-tungsten);
  opacity:.35;
  animation:si-blink 1.2s infinite;
}
.si-chat__typing i:nth-child(2){animation-delay:.2s;}
.si-chat__typing i:nth-child(3){animation-delay:.4s;}
@keyframes si-blink{0%,80%,100%{opacity:.25;}40%{opacity:1;}}

.si-chat__chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 12px;}
.si-chat__chips[hidden]{display:none!important;}
.si-chat__chip{
  padding:7px 11px;
  border:1px solid var(--c-line);
  border-radius:999px;
  background:transparent;
  color:var(--c-text);
  font:500 12.5px/1.2 "IBM Plex Sans",sans-serif;
  cursor:pointer;
  transition:border-color .2s,background .2s;
}
.si-chat__chip:hover{border-color:var(--c-tungsten);background:rgba(227,155,60,0.08);}

/* input */
.si-chat__form{
  display:flex;
  gap:8px;
  padding:12px;
  border-top:1px solid var(--c-line);
  background:var(--c-ground);
}
.si-chat__input{
  flex:1;
  min-width:0;
  resize:none;
  max-height:120px;
  padding:10px 12px;
  border:1px solid var(--c-line);
  border-radius:3px;
  background:var(--c-surface);
  color:var(--c-text);
  font:16px/1.4 "IBM Plex Sans",sans-serif;
}
.si-chat__input::placeholder{color:var(--c-muted);}
.si-chat__input:focus{outline:none;border-color:rgba(227,155,60,0.6);box-shadow:0 0 0 3px rgba(227,155,60,0.1);}
.si-chat__send{
  align-self:flex-end;
  padding:10px 14px;
  border:0;
  border-radius:3px;
  background:var(--c-tungsten);
  color:#15100A;
  font:600 14px/1 "IBM Plex Sans",sans-serif;
  cursor:pointer;
  transition:background .2s,box-shadow .2s;
}
.si-chat__send:hover{background:#F0AC52;box-shadow:0 0 18px rgba(227,155,60,0.35);}
.si-chat__send:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;}
.si-chat__foot{
  padding:0 12px 10px;
  background:var(--c-ground);
  color:var(--c-muted);
  font-size:11px;
  line-height:1.4;
}
.si-chat__foot a{color:var(--c-muted);}
.si-chat__foot a:hover{color:var(--c-text);}

.si-chat button:focus-visible,.si-chat a:focus-visible{outline:2px solid var(--c-daylight);outline-offset:2px;}

@media (max-width:480px){
  .si-chat{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom, 0px));display:flex;justify-content:flex-end;pointer-events:none;}
  .si-chat > *{pointer-events:auto;}
  .si-chat__panel{width:100%;height:min(78vh, 600px);}
}
@media (prefers-reduced-motion:reduce){
  .si-chat *,.si-chat *::after{animation:none!important;transition:none!important;}
  .si-chat__log{scroll-behavior:auto;}
}
