/* ============ TONGE ASSISTANT — floating chatbot ============ */
.cb-root{position:fixed;right:clamp(16px,3vw,30px);bottom:clamp(16px,3vw,30px);z-index:130;font-family:var(--f-body)}

/* launcher */
.cb-launch{
  width:64px;height:64px;border-radius:50%;border:none;cursor:pointer;position:relative;
  background:var(--brass-grad);color:#231809;display:flex;align-items:center;justify-content:center;
  box-shadow:0 16px 36px -10px rgba(194,160,99,.6),0 4px 12px rgba(0,0,0,.3);
  transition:transform .45s var(--ease),box-shadow .45s;
}
.cb-launch:hover{transform:translateY(-3px) scale(1.04)}
.cb-launch svg{width:28px;height:28px;transition:transform .4s var(--ease),opacity .3s}
.cb-launch .ic-close{position:absolute;opacity:0;transform:rotate(-90deg) scale(.6)}
.cb-root.open .cb-launch .ic-chat{opacity:0;transform:rotate(90deg) scale(.6)}
.cb-root.open .cb-launch .ic-close{opacity:1;transform:none}
.cb-pulse{position:absolute;inset:0;border-radius:50%;border:2px solid var(--brass);animation:cbpulse 2.4s var(--ease) infinite;pointer-events:none}
@keyframes cbpulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.5);opacity:0}}
.cb-root.open .cb-pulse{display:none}
.cb-badge{position:absolute;top:-3px;right:-3px;width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--ink);box-shadow:0 2px 6px rgba(0,0,0,.4)}
.cb-root.open .cb-badge{display:none}

/* greeting bubble */
.cb-greet{
  position:absolute;bottom:78px;right:4px;width:236px;background:var(--ink-3);border:1px solid var(--line);
  border-radius:16px 16px 4px 16px;padding:15px 17px;box-shadow:var(--shadow-soft);
  font-size:14px;color:var(--text);line-height:1.5;
  opacity:0;transform:translateY(10px) scale(.96);transform-origin:bottom right;transition:.45s var(--ease);pointer-events:none;
}
.cb-greet.show{opacity:1;transform:none;pointer-events:auto}
.cb-root.open .cb-greet{opacity:0!important;pointer-events:none}
.cb-greet b{color:var(--brass-lt)}
.cb-greet .x{position:absolute;top:-8px;left:-8px;width:22px;height:22px;border-radius:50%;background:var(--ink-4);border:1px solid var(--line);color:var(--text-dim);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:13px}
.cb-greet .x:hover{color:#fff}

/* panel */
.cb-panel{
  position:absolute;bottom:80px;right:0;width:min(390px,calc(100vw - 32px));height:min(620px,calc(100svh - 120px));
  background:var(--ink-2);border:1px solid var(--line);border-radius:22px;overflow:hidden;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.7);display:flex;flex-direction:column;
  opacity:0;transform:translateY(24px) scale(.96);transform-origin:bottom right;pointer-events:none;
  transition:opacity .4s var(--ease),transform .45s var(--ease);
}
.cb-root.open .cb-panel{opacity:1;transform:none;pointer-events:auto}

/* header */
.cb-head{background:linear-gradient(150deg,#22262c,#191c21);padding:18px 20px;display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--line);position:relative}
.cb-head .av{width:44px;height:44px;border-radius:50%;background:var(--brass-grad);display:flex;align-items:center;justify-content:center;flex:none;position:relative}
.cb-head .av svg{width:23px;height:23px;color:#231809}
.cb-head .av .on{position:absolute;bottom:1px;right:1px;width:12px;height:12px;border-radius:50%;background:#3ad07f;border:2px solid var(--ink-2)}
.cb-head .ht b{font-size:15.5px;color:var(--text);font-weight:600;display:block;line-height:1.2}
.cb-head .ht span{font-size:12px;color:#8fe0b5;display:flex;align-items:center;gap:5px;margin-top:2px}
.cb-head .ht span::before{content:"";width:6px;height:6px;border-radius:50%;background:#3ad07f}
.cb-min{margin-left:auto;background:none;border:none;color:var(--text-dim);cursor:pointer;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:.3s}
.cb-min:hover{background:rgba(255,255,255,.06);color:#fff}
.cb-min svg{width:18px;height:18px}

/* messages */
.cb-body{flex:1;overflow-y:auto;padding:22px 18px 8px;display:flex;flex-direction:column;gap:14px;scroll-behavior:smooth}
.cb-body::-webkit-scrollbar{width:6px}
.cb-body::-webkit-scrollbar-thumb{background:#3a3f47;border-radius:10px}
.cb-msg{max-width:84%;font-size:14.5px;line-height:1.55;animation:cbIn .4s var(--ease)}
@keyframes cbIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.cb-bot{align-self:flex-start;display:flex;gap:9px;align-items:flex-end}
.cb-bot .mav{width:26px;height:26px;border-radius:50%;background:var(--brass-soft);border:1px solid rgba(194,160,99,.3);flex:none;display:flex;align-items:center;justify-content:center;color:var(--brass)}
.cb-bot .mav svg{width:14px;height:14px}
.cb-bot .bub{background:var(--ink-3);border:1px solid var(--line);color:var(--text);padding:12px 15px;border-radius:4px 16px 16px 16px}
.cb-bot .bub a{color:var(--brass-lt);text-decoration:underline;text-underline-offset:2px}
.cb-bot .bub b{color:var(--brass-lt);font-weight:600}
.cb-user{align-self:flex-end}
.cb-user .bub{background:var(--brass-grad);color:#231809;padding:12px 15px;border-radius:16px 16px 4px 16px;font-weight:500}
.cb-msg .bub p+p{margin-top:9px}

/* typing */
.cb-typing{align-self:flex-start;display:flex;gap:9px;align-items:flex-end}
.cb-typing .mav{width:26px;height:26px;border-radius:50%;background:var(--brass-soft);border:1px solid rgba(194,160,99,.3);flex:none;display:flex;align-items:center;justify-content:center;color:var(--brass)}
.cb-typing .mav svg{width:14px;height:14px}
.cb-typing .dots{background:var(--ink-3);border:1px solid var(--line);padding:14px 16px;border-radius:4px 16px 16px 16px;display:flex;gap:5px}
.cb-typing .dots i{width:7px;height:7px;border-radius:50%;background:var(--text-faint);animation:cbdot 1.3s infinite}
.cb-typing .dots i:nth-child(2){animation-delay:.18s}.cb-typing .dots i:nth-child(3){animation-delay:.36s}
@keyframes cbdot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}

/* quick replies */
.cb-quick{display:flex;flex-wrap:wrap;gap:8px;padding:4px 18px 14px}
.cb-chip{font-family:var(--f-cond);text-transform:uppercase;letter-spacing:.08em;font-size:12.5px;font-weight:600;color:var(--brass-lt);background:rgba(194,160,99,.1);border:1px solid rgba(194,160,99,.34);border-radius:100px;padding:9px 15px;cursor:pointer;transition:.28s;animation:cbIn .4s var(--ease)}
.cb-chip:hover{background:var(--brass-grad);color:#231809;border-color:transparent;transform:translateY(-2px)}
.cb-chip.solid{background:var(--brass-grad);color:#231809;border-color:transparent}

/* input */
.cb-foot{padding:12px 14px 14px;border-top:1px solid var(--line);background:var(--ink-2)}
.cb-inwrap{display:flex;align-items:flex-end;gap:8px;background:var(--ink);border:1px solid var(--line);border-radius:16px;padding:6px 6px 6px 14px;transition:border-color .3s}
.cb-inwrap:focus-within{border-color:var(--brass)}
.cb-input{flex:1;background:none;border:none;color:var(--text);font-family:var(--f-body);font-size:14.5px;resize:none;max-height:90px;padding:8px 0;line-height:1.4}
.cb-input:focus{outline:none}
.cb-input::placeholder{color:rgba(243,239,231,.32)}
.cb-send{width:38px;height:38px;border-radius:11px;border:none;background:var(--brass-grad);color:#231809;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none;transition:.3s}
.cb-send:hover{transform:translateY(-1px)}
.cb-send:disabled{opacity:.4;cursor:default;transform:none}
.cb-send svg{width:18px;height:18px}
.cb-creds{text-align:center;font-size:10.5px;color:var(--text-faint);margin-top:9px;letter-spacing:.04em}
.cb-creds b{color:var(--brass);font-weight:600}

@media(max-width:480px){
  .cb-panel{width:calc(100vw - 24px);height:calc(100svh - 100px);right:-6px}
  .cb-greet{width:200px}
}
