/* Calc Ginni™ Chatbot CSS — © VK Tax & Law Chamber® */

/* ── Trigger Button ── */
#ginni-trigger{
  position:fixed;bottom:28px;right:28px;z-index:9999;
  cursor:pointer;transition:transform .2s;
}
#ginni-trigger:hover{transform:scale(1.12);}
.ginni-orb{
  width:62px;height:62px;border-radius:50%;
  background:linear-gradient(135deg,#BF953F,#AA771C);
  display:flex;align-items:center;justify-content:center;
  font-size:28px;
  box-shadow:0 0 0 0 rgba(191,149,63,.6);
  animation:ginniPulse 2.5s ease infinite;
  border:2px solid rgba(255,215,100,.4);
}
@keyframes ginniPulse{
  0%{box-shadow:0 0 0 0 rgba(191,149,63,.55);}
  70%{box-shadow:0 0 0 14px rgba(191,149,63,0);}
  100%{box-shadow:0 0 0 0 rgba(191,149,63,0);}
}
.ginni-label{
  position:absolute;bottom:70px;right:0;
  background:#fff;color:#0f172a;
  font-size:11.5px;font-weight:800;
  padding:5px 11px;border-radius:8px;
  box-shadow:0 4px 16px rgba(0,0,0,.18);
  white-space:nowrap;font-family:'DM Sans',sans-serif;
  border:1px solid #BF953F;
  animation:floatLabel 3s ease infinite;
}
.ginni-label::after{
  content:'';position:absolute;bottom:-6px;right:18px;
  width:10px;height:10px;background:#fff;
  border-right:1px solid #BF953F;border-bottom:1px solid #BF953F;
  transform:rotate(45deg);
}
@keyframes floatLabel{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-4px);}
}

/* ── Chat Window ── */
#ginni-box{
  position:fixed;bottom:108px;right:28px;
  width:360px;height:540px;
  background:#0f172a;
  border:2px solid #BF953F;
  border-radius:18px;
  display:none;flex-direction:column;
  overflow:hidden;
  box-shadow:0 12px 48px rgba(0,0,0,.6),0 0 0 1px rgba(191,149,63,.15);
  z-index:9998;
  font-family:'DM Sans',sans-serif;
  animation:ginniSlideIn .3s ease;
}
#ginni-box.open{display:flex;}
@keyframes ginniSlideIn{
  from{opacity:0;transform:translateY(20px) scale(.97);}
  to{opacity:1;transform:translateY(0) scale(1);}
}

/* Header */
.ginni-header{
  background:linear-gradient(90deg,#3a2c0f,#BF953F 60%,#AA771C);
  padding:14px 16px;
  display:flex;align-items:center;justify-content:space-between;
  flex-shrink:0;
}
.ginni-header-left{display:flex;align-items:center;gap:10px;}
.ginni-avatar{
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;
  font-size:20px;border:2px solid rgba(255,255,255,.3);
}
.ginni-name{font-weight:800;font-size:15px;color:#fff;line-height:1.1;}
.ginni-status{font-size:10px;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:4px;}
.ginni-dot{width:6px;height:6px;background:#4ade80;border-radius:50%;animation:blink 1.5s infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.3;}}
.ginni-close{
  background:rgba(255,255,255,.15);border:none;
  color:#fff;font-size:18px;width:28px;height:28px;
  border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .15s;font-weight:700;line-height:1;
}
.ginni-close:hover{background:rgba(255,255,255,.3);}

/* Messages */
.ginni-messages{
  flex:1;overflow-y:auto;padding:14px 12px;
  display:flex;flex-direction:column;gap:10px;
  scrollbar-width:thin;scrollbar-color:#BF953F #0f172a;
}
.ginni-messages::-webkit-scrollbar{width:4px;}
.ginni-messages::-webkit-scrollbar-thumb{background:#BF953F;border-radius:4px;}

.msg{display:flex;align-items:flex-end;gap:7px;max-width:88%;}
.msg.bot{align-self:flex-start;}
.msg.user{align-self:flex-end;flex-direction:row-reverse;}
.msg-avatar{
  width:26px;height:26px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#BF953F,#AA771C);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;
}
.msg-bubble{
  padding:9px 13px;border-radius:14px;
  font-size:13px;line-height:1.55;
}
.msg.bot .msg-bubble{
  background:#1e293b;color:#e2e8f0;
  border:1px solid #BF953F22;
  border-radius:4px 14px 14px 14px;
}
.msg.user .msg-bubble{
  background:linear-gradient(135deg,#BF953F,#AA771C);
  color:#fff;
  border-radius:14px 4px 14px 14px;
}
.msg-bubble a{color:#fbbf24;text-decoration:underline;}
.msg-time{font-size:9.5px;color:#475569;margin-top:3px;text-align:right;}

/* Typing indicator */
.typing-indicator{display:flex;align-items:center;gap:4px;padding:10px 13px;}
.typing-dot{width:7px;height:7px;background:#BF953F;border-radius:50%;animation:typingBounce .9s infinite;}
.typing-dot:nth-child(2){animation-delay:.15s;}
.typing-dot:nth-child(3){animation-delay:.3s;}
@keyframes typingBounce{0%,80%,100%{transform:translateY(0);}40%{transform:translateY(-6px);}}

/* Quick Actions */
.ginni-quick{
  padding:8px 12px;
  display:flex;flex-wrap:wrap;gap:6px;
  border-top:1px solid #1e293b;
  flex-shrink:0;
}
.quick-btn{
  background:#1e293b;color:#BF953F;
  border:1px solid #BF953F44;
  border-radius:20px;padding:5px 11px;
  font-size:11.5px;font-weight:600;cursor:pointer;
  transition:background .15s,border-color .15s;
  font-family:'DM Sans',sans-serif;
}
.quick-btn:hover{background:#BF953F;color:#0f172a;border-color:#BF953F;}

/* Input bar */
.ginni-input-bar{
  display:flex;align-items:center;gap:8px;
  padding:10px 12px;
  border-top:1px solid #1e293b;
  background:#0d1526;
  flex-shrink:0;
}
.ginni-input{
  flex:1;background:#1e293b;border:1px solid #BF953F33;
  border-radius:20px;padding:9px 14px;
  color:#e2e8f0;font-size:13px;outline:none;
  font-family:'DM Sans',sans-serif;
  transition:border-color .2s;
}
.ginni-input:focus{border-color:#BF953F;}
.ginni-input::placeholder{color:#475569;}
.ginni-send{
  width:36px;height:36px;border-radius:50%;
  background:linear-gradient(135deg,#BF953F,#AA771C);
  border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;
  transition:transform .15s,box-shadow .2s;
  box-shadow:0 2px 8px rgba(191,149,63,.4);
}
.ginni-send:hover{transform:scale(1.1);box-shadow:0 4px 14px rgba(191,149,63,.6);}

/* Disclaimer in chat */
.ginni-disclaimer{
  font-size:10px;color:#475569;
  text-align:center;padding:6px 12px;
  border-top:1px solid #1e293b;
  line-height:1.5;flex-shrink:0;
}
.ginni-disclaimer span{color:#BF953F;}

/* Legal Ginni™ cross-link badge */
.legal-ginni-link{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(124,58,237,.15);
  border:1px solid rgba(124,58,237,.4);
  border-radius:8px;padding:6px 10px;
  color:#a78bfa;font-size:12px;font-weight:600;
  text-decoration:none;margin-top:6px;
  transition:background .2s;
}
.legal-ginni-link:hover{background:rgba(124,58,237,.3);}
