/* ============================================================
   DINAH chat widget
   ============================================================ */
.dinah{ position:fixed; right:clamp(16px,3vw,30px); bottom:clamp(16px,3vw,30px); z-index:90; }

.dinah-fab{
  position:relative; width:62px; height:62px; border-radius:50%; cursor:pointer; border:none;
  background:var(--grad); color:#04121a; display:grid; place-items:center;
  box-shadow:0 14px 40px -10px rgba(42,212,240,.7); transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
.dinah-fab:hover{ transform:scale(1.06); }
.dinah-fab svg{ width:27px; height:27px; }
.dinah-fab-close{ position:absolute; inset:0; display:grid; place-items:center; opacity:0; transform:rotate(-90deg) scale(.6); transition:.3s; }
.dinah-fab-ic{ display:grid; place-items:center; transition:.3s; }
.dinah.open .dinah-fab-ic{ opacity:0; transform:rotate(90deg) scale(.6); }
.dinah.open .dinah-fab-close{ opacity:1; transform:none; }
.dinah-ping{
  display:none; position:absolute; top:-2px; right:-2px; width:16px; height:16px; border-radius:50%;
  background:#ff5a6e; border:2px solid var(--bg);
}
.dinah-ping::after{ content:""; position:absolute; inset:-2px; border-radius:50%; background:#ff5a6e; animation:dping 1.6s ease-out infinite; }
@keyframes dping{ 0%{ transform:scale(1); opacity:.7; } 100%{ transform:scale(2.4); opacity:0; } }

.dinah-panel{
  position:absolute; bottom:78px; right:0; width:min(380px, calc(100vw - 32px));
  height:min(560px, calc(100svh - 130px));
  background:var(--bg-2); border:1px solid var(--line-2); border-radius:22px; overflow:hidden;
  display:flex; flex-direction:column;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.8);
  opacity:0; transform:translateY(16px) scale(.97); pointer-events:none;
  transition:opacity .3s, transform .35s cubic-bezier(.2,.9,.2,1);
}
.dinah.open .dinah-panel{ opacity:1; transform:none; pointer-events:auto; }

.dinah-head{ display:flex; align-items:center; gap:13px; padding:18px 20px; border-bottom:1px solid var(--line); background:linear-gradient(180deg, rgba(42,212,240,.07), transparent); }
.dinah-ava{ width:42px; height:42px; border-radius:50%; background:var(--grad); display:grid; place-items:center; flex:none; position:relative; }
.dinah-ava span{ width:16px; height:16px; border-radius:50%; background:#04121a; position:relative; }
.dinah-ava span::before, .dinah-ava span::after{ content:""; position:absolute; top:5px; width:4px; height:4px; border-radius:50%; background:var(--cyan); }
.dinah-ava span::before{ left:3px; } .dinah-ava span::after{ right:3px; }
.dinah-nm{ font-family:var(--display); font-weight:700; font-size:15px; }
.dinah-nm em{ font-style:normal; font-weight:400; color:var(--mute); font-size:12px; font-family:var(--mono); }
.dinah-st{ font-size:11.5px; color:var(--dim); display:flex; align-items:center; gap:6px; margin-top:3px; }
.dinah-st i{ width:7px; height:7px; border-radius:50%; background:#37e08a; box-shadow:0 0 8px #37e08a; }

.dinah-log{ flex:1; overflow-y:auto; padding:20px; display:flex; flex-direction:column; gap:12px; scrollbar-width:thin; scrollbar-color:var(--line-2) transparent; }
.dinah-log::-webkit-scrollbar{ width:6px; } .dinah-log::-webkit-scrollbar-thumb{ background:var(--line-2); border-radius:3px; }

.dmsg{ display:flex; max-width:85%; }
.dmsg .bub{ padding:11px 15px; border-radius:16px; font-size:14px; line-height:1.5; }
.dmsg.bot{ align-self:flex-start; }
.dmsg.bot .bub{ background:var(--bg-3); border:1px solid var(--line); border-bottom-left-radius:5px; color:var(--text); }
.dmsg.user{ align-self:flex-end; }
.dmsg.user .bub{ background:var(--grad); color:#04121a; font-weight:500; border-bottom-right-radius:5px; }
.dmsg.typing .bub{ display:flex; gap:5px; align-items:center; }
.dmsg.typing .dot{ width:7px; height:7px; border-radius:50%; background:var(--dim); animation:dtype 1.2s infinite; }
.dmsg.typing .dot:nth-child(2){ animation-delay:.18s; } .dmsg.typing .dot:nth-child(3){ animation-delay:.36s; }
@keyframes dtype{ 0%,60%,100%{ transform:translateY(0); opacity:.4; } 30%{ transform:translateY(-4px); opacity:1; } }

.dinah-quick{ display:none; flex-wrap:wrap; gap:8px; padding:0 20px 14px; }
.dchip{ font-family:var(--body); font-size:12.5px; color:var(--cyan); padding:8px 13px; border-radius:100px; border:1px solid rgba(42,212,240,.3); background:rgba(42,212,240,.05); cursor:pointer; transition:.2s; }
.dchip:hover{ background:rgba(42,212,240,.14); }

.dinah-input{ display:flex; gap:10px; padding:14px 16px; border-top:1px solid var(--line); background:var(--bg-1); }
.dinah-input input{ flex:1; background:var(--bg); border:1px solid var(--line-2); border-radius:100px; padding:12px 16px; color:var(--text); font-family:var(--body); font-size:14px; }
.dinah-input input:focus{ outline:none; border-color:var(--cyan); }
.dinah-input button{ width:44px; height:44px; flex:none; border-radius:50%; border:none; background:var(--grad); color:#04121a; cursor:pointer; display:grid; place-items:center; transition:transform .2s; }
.dinah-input button:hover{ transform:scale(1.07); }
.dinah-input button svg{ width:19px; height:19px; }
