/* The assistant inherits the site's paper-and-accent palette. */
.sa-wrap{
  --sa-robot-size:128px;
  --sa-dock-right:12px;
  --sa-dock-bottom:6px;
  --sa-paper:var(--cd-paper,#f8f8f5);
  --sa-canvas:#eeeeea;
  --sa-ink:var(--cd-ink,#090909);
  --sa-muted:#5f625f;
  --sa-ac:var(--cd-orange);
  --sa-ac-hover:var(--cd-orange-deep);
  --sa-secondary:var(--cd-violet);
  --sa-line:rgba(9,9,9,.11);
  --sa-line-strong:rgba(9,9,9,.22);
  --sa-e:cubic-bezier(.16,1,.3,1);
  font-family:"Inter","Noto Sans Georgian","Segoe UI",system-ui,sans-serif;
}
.sa-wrap *{box-sizing:border-box}
.sa-edge-filters{position:absolute; width:0; height:0; overflow:hidden; pointer-events:none}

/* Robot */
.sa-rig{display:block; position:relative; width:100%; aspect-ratio:273/267; pointer-events:none}
.sa-robot-media,.sa-robot-frame{display:block; width:100%; height:100%}
.sa-robot-still,.sa-robot-media{position:absolute; inset:0}
.sa-robot-media{opacity:0}
.sa-robot-ready .sa-robot-media{opacity:1}
.sa-robot-ready .sa-robot-still{visibility:hidden}
.sa-robot-frame{object-fit:contain; -webkit-user-drag:none; user-select:none; max-width:none; filter:url(#sa-robot-clean-edge)}

.sa-dock{position:fixed; z-index:9000; bottom:var(--sa-dock-bottom); bottom:calc(var(--sa-dock-bottom) + env(safe-area-inset-bottom,0px)); right:var(--sa-dock-right); display:flex; align-items:flex-end; gap:6px}
.sa-btn{appearance:none; border:0; padding:0; margin:0; background:transparent; cursor:pointer; position:relative; flex:none; width:var(--sa-robot-size); touch-action:none}
.sa-btn:focus-visible{outline:3px solid var(--sa-secondary); outline-offset:5px; border-radius:20px}

/* Small invitation bubble, used outside the homepage. */
.sa-bubble{position:relative; max-width:250px; margin:0 0 44px; padding:12px 15px; border:1px solid var(--sa-line); border-radius:19px 19px 4px 19px; background:var(--sa-paper); color:var(--sa-ink); box-shadow:0 12px 34px rgba(0,0,0,.12); font-size:14px; line-height:1.5; transition:opacity .35s var(--sa-e),transform .35s var(--sa-e)}
.sa-bubble b{color:var(--sa-ac-hover); font-weight:750}
.sa-bubble.sa-out{opacity:0; transform:translateY(6px)}
.sa-x{position:absolute; top:-9px; right:-9px; width:25px; height:25px; padding:0; border:1px solid var(--sa-line); border-radius:50%; background:var(--sa-paper); color:var(--sa-muted); cursor:pointer; font-family:inherit; font-size:14px; font-weight:500; line-height:1}
.sa-x:hover{color:var(--sa-ink); border-color:var(--sa-line-strong)}

/* Chat panel */
.sa-panel{
  position:fixed; z-index:9001; right:20px;
  bottom:16px; bottom:calc(16px + env(safe-area-inset-bottom,0px));
  display:flex; flex-direction:column; width:420px; max-width:calc(100vw - 32px);
  height:min(520px,calc(100vh - 32px)); height:min(520px,calc(100dvh - 32px));
  overflow:hidden; border:1px solid var(--sa-line); border-radius:28px;
  background:var(--sa-paper); color:var(--sa-ink);
  box-shadow:0 28px 75px rgba(18,22,25,.18),0 5px 18px rgba(18,22,25,.08);
  animation:sa-pop .35s var(--sa-e); transition:height .35s var(--sa-e);
}
.sa-panel--active{height:min(640px,calc(100vh - 32px)); height:min(640px,calc(100dvh - 32px))}
.sa-panel.sa-panel--used{height:auto; max-height:min(640px,calc(100vh - 32px)); max-height:min(640px,calc(100dvh - 32px))}
.sa-panel--used .sa-log{flex:0 1 auto}
@keyframes sa-pop{from{opacity:0; transform:translateY(14px) scale(.97)} to{opacity:1; transform:none}}
.sa-hd{display:flex; align-items:center; gap:10px; min-height:83px; padding:15px 17px 13px; border-bottom:1px solid var(--sa-line); background:var(--sa-paper); flex:none}
.sa-av{display:grid; place-items:center; width:53px; height:53px; padding:2px; border-radius:17px; background:color-mix(in srgb,var(--sa-secondary) 13%,white); flex:none}
.sa-av .sa-rig{width:48px}
.sa-who{min-width:0; flex:1}
.sa-who strong{display:block; color:var(--sa-ink); font-size:15px; font-weight:800; line-height:1.2; letter-spacing:-.015em}
.sa-who span{display:flex; align-items:center; gap:6px; margin-top:5px; color:var(--sa-muted); font-size:11px; line-height:1.25; white-space:nowrap}
.sa-dot{width:7px; height:7px; border-radius:50%; background:var(--sa-secondary); flex:none}
.sa-ico{display:grid; place-items:center; width:36px; height:36px; padding:0; border:1px solid var(--sa-line); border-radius:50%; background:var(--sa-paper); color:var(--sa-ink); cursor:pointer; flex:none; transition:background .2s var(--sa-e),border-color .2s var(--sa-e),color .2s var(--sa-e)}
.sa-ico svg{display:block; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.sa-ico:hover,.sa-ico[aria-pressed="true"]{background:color-mix(in srgb,var(--sa-secondary) 10%,white); border-color:color-mix(in srgb,var(--sa-secondary) 40%,white); color:var(--sa-secondary)}
.sa-ico:focus-visible,.sa-chip:focus-visible,.sa-send:focus-visible{outline:2px solid var(--sa-secondary); outline-offset:2px}

.sa-log{display:flex; flex:1; flex-direction:column; gap:11px; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:19px 18px; background:var(--sa-canvas); scrollbar-width:thin; scrollbar-color:#c9cbc7 transparent}
.sa-msg{max-width:92%; padding:12px 14px; border-radius:17px; font-size:14px; line-height:1.52; white-space:pre-wrap; overflow-wrap:anywhere}
.sa-msg.sa-b{align-self:flex-start; border:1px solid var(--sa-line); border-bottom-left-radius:5px; background:var(--sa-paper); color:var(--sa-ink); box-shadow:0 3px 11px rgba(0,0,0,.035)}
.sa-msg.sa-u{align-self:flex-end; border-bottom-right-radius:5px; background:var(--sa-ac); color:#fff}

.sa-chips{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:12px 17px 14px; border-top:1px solid var(--sa-line); background:var(--sa-paper); flex:none}
.sa-chips-title{grid-column:1/-1; margin-bottom:2px; color:var(--sa-muted); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase}
.sa-chip{appearance:none; min-width:0; min-height:38px; padding:7px 10px; border:1px solid transparent; border-radius:11px; background:var(--sa-canvas); color:var(--sa-ink); cursor:pointer; font-family:inherit; font-size:12px; font-weight:650; line-height:1.25; overflow-wrap:anywhere; text-align:left; transition:background .2s var(--sa-e),border-color .2s var(--sa-e)}
.sa-chip:hover{border-color:color-mix(in srgb,var(--sa-secondary) 35%,white); background:color-mix(in srgb,var(--sa-secondary) 10%,white)}

.sa-form{display:flex; align-items:flex-end; gap:10px; margin:0; padding:13px 17px 16px; border-top:1px solid var(--sa-line); background:var(--sa-paper); flex:none}
.sa-form textarea{display:block; flex:1; min-width:0; height:50px; min-height:50px; max-height:110px; padding:13px 14px; resize:none; overflow-y:hidden; border:1px solid var(--sa-line); border-radius:15px; background:var(--sa-canvas); color:var(--sa-ink); font-family:inherit; font-size:14px; font-weight:500; line-height:1.5}
.sa-form textarea::placeholder{color:#777a76}
.sa-form textarea:focus{outline:none; border-color:var(--sa-ac); box-shadow:0 0 0 3px color-mix(in srgb,var(--sa-ac) 13%,transparent)}
.sa-send{display:grid; place-items:center; width:50px; height:50px; padding:0; border:0; border-radius:15px; background:var(--sa-ac); color:#fff; cursor:pointer; flex:none; transition:background .2s var(--sa-e),transform .2s var(--sa-e)}
.sa-send svg{width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round}
.sa-send:hover{background:var(--sa-ac-hover); transform:translateY(-2px)}
.sa-send:disabled{opacity:.48; cursor:default; transform:none}
.sa-note{padding:8px 17px; border-top:1px solid var(--sa-line); background:var(--sa-paper); color:var(--sa-muted); font-size:12px; line-height:1.45; flex:none}

.sa-hide{display:none !important}

@media (max-width:700px){
  .sa-wrap{--sa-robot-size:68px; --sa-dock-right:5px; --sa-dock-bottom:3px}
}
@media (max-width:560px){
  .sa-bubble{max-width:170px; margin-bottom:32px; font-size:13px}
  .sa-panel{left:10px; right:10px; bottom:10px; width:auto; max-width:none; height:min(520px,calc(100dvh - 20px)); border-radius:24px}
  .sa-panel--active{height:min(620px,calc(100dvh - 20px))}
  .sa-panel.sa-panel--used{max-height:min(620px,calc(100dvh - 20px))}
  .sa-hd{min-height:74px; padding:12px 14px}
  .sa-av{width:47px; height:47px; border-radius:14px}
  .sa-av .sa-rig{width:43px}
  .sa-log{padding:16px 14px}
  .sa-chips{padding:11px 14px 12px}
  .sa-form{padding:12px 14px 14px}
}
@media (max-height:620px){
  .sa-hd{min-height:68px}
  .sa-chips{padding-block:9px}
  .sa-chip{min-height:32px; padding-block:5px}
}
@media (prefers-reduced-motion:reduce){
  .sa-wrap *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important}
}
