:root{
  --bg:#080b10;--panel:#111827;--line:#252b35;--text:#f4f5f7;
  --muted:#9ca3af;--brand:#4f7df3;--bubble:#1d2430;--user:#315fdb;--success:#66b35a
}
*{box-sizing:border-box}html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input{font:inherit}
.chat-shell{min-height:100vh;display:grid;grid-template-rows:118px 1fr 88px;background:var(--bg)}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line);background:#090d12}
.profile-wrap{display:flex;align-items:center;gap:14px}.avatar{position:relative;flex:0 0 auto}
.avatar img{width:100%;height:100%;display:block;border-radius:50%;object-fit:cover;border:1px solid #303745}
.avatar-small{width:76px;height:76px}.avatar-large{width:170px;height:170px;margin:20px auto 26px}
.online-dot{position:absolute;right:2%;bottom:8%;width:24%;height:24%;min-width:18px;min-height:18px;background:var(--success);border:3px solid #0b0f15;border-radius:50%}
.name-row{display:flex;align-items:center;gap:8px}.name-row strong{font-size:25px;letter-spacing:-.02em}
.ai-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 7px;border-radius:999px;background:#315fdb;color:white;font-size:11px;font-weight:800;letter-spacing:.05em}
.subtitle{display:block;margin-top:5px;color:var(--muted);font-size:15px}
.top-actions{display:flex;align-items:center;gap:12px}.icon-button{border:0;background:transparent;color:#d7dbe2;font-size:28px;padding:8px 10px;cursor:pointer}
.chat-area{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:0}
.waiting-card{width:min(610px,calc(100% - 36px));margin:auto;padding:34px 32px 28px;text-align:center;background:#121827;border:1px solid #273043;border-radius:14px;box-shadow:0 0 0 3px rgba(66,93,150,.12),0 18px 50px rgba(0,0,0,.32);transition:opacity .45s ease,transform .45s ease}
.waiting-card.fade-out{opacity:0;transform:translateY(-10px) scale(.985);pointer-events:none}.waiting-card.hidden{display:none}
.waiting-card h1{margin:0;font-size:clamp(31px,4vw,52px);line-height:1.12;letter-spacing:-.035em}
.waiting-card p{margin:0 0 24px;color:#c4c8d0;font-size:18px}
.waiting-card button{padding:12px 22px;color:#6e9bff;background:#16213b;border:1px solid #3c5d9e;border-radius:999px}
.waiting-card small{display:block;margin-top:14px;color:#7f8794;font-size:12px}
.messages{flex:1;overflow:auto;padding:30px 24px 18px;display:flex;flex-direction:column;gap:12px}
.message{max-width:min(78%,620px);padding:12px 15px;border-radius:19px;line-height:1.4;font-size:16px;white-space:pre-wrap;overflow-wrap:anywhere;animation:messageIn .22s ease-out}
.message.bot{align-self:flex-start;background:var(--bubble);border-bottom-left-radius:6px}
.message.user{align-self:flex-end;background:var(--user);color:white;border-bottom-right-radius:6px}
@keyframes messageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.typing{margin:0 24px 14px;width:64px;padding:12px 13px;display:flex;gap:5px;background:var(--bubble);border-radius:18px 18px 18px 6px}
.typing span{width:7px;height:7px;border-radius:50%;background:#98a1ae;animation:bounce 1s infinite}
.typing span:nth-child(2){animation-delay:.14s}.typing span:nth-child(3){animation-delay:.28s}
@keyframes bounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-4px)}}
.offer{
  margin:0 24px 18px;
  padding:20px;
  border:1px solid #385aab;
  border-radius:18px;
  background:linear-gradient(180deg,#16203a 0%,#10182b 100%);
  text-align:center;
  box-shadow:0 16px 40px rgba(0,0,0,.28),0 0 0 1px rgba(95,130,255,.08) inset;
  animation:offerIn .35s ease-out
}
.offer-badge{
  display:inline-block;
  margin-bottom:10px;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(95,130,255,.14);
  color:#8fb0ff;
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em
}
.offer h2{
  margin:0 0 8px;
  font-size:22px;
  line-height:1.2
}
.offer p{
  margin:0 auto 16px;
  max-width:620px;
  color:#d4d9e4;
  font-size:15px;
  line-height:1.5
}
.offer a{
  display:block;
  padding:15px 18px;
  border-radius:13px;
  background:linear-gradient(90deg,#5b7df0,#6f8df5);
  color:#fff;
  text-decoration:none;
  font-size:16px;
  font-weight:850;
  box-shadow:0 8px 22px rgba(73,104,218,.28);
  transition:transform .15s ease,filter .15s ease
}
.offer a:hover{
  transform:translateY(-1px);
  filter:brightness(1.05)
}
.offer a:active{
  transform:translateY(0)
}
.offer small{
  display:block;
  margin-top:10px;
  color:#8f98a8;
  font-size:10px;
  line-height:1.4
}
@keyframes offerIn{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}
.composer{display:flex;align-items:center;gap:10px;margin:0 18px 18px;padding:10px 12px;border:1px solid #20262f;border-radius:999px;background:#10141a}
.composer input{min-width:0;flex:1;color:#f3f4f6;background:transparent;border:0;outline:0;font-size:16px}
.composer input::placeholder{color:#555d69}.composer-icon,.send-button{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:#858d98;font-size:24px}
.send-button{background:#2b55c7;color:white;cursor:pointer}.send-button:disabled{opacity:.4;cursor:not-allowed}.hidden{display:none!important}
@media(max-width:700px){.chat-shell{grid-template-rows:88px 1fr 78px}.topbar{padding:12px 14px}.avatar-small{width:56px;height:56px}.name-row strong{font-size:20px}.waiting-card{padding:28px 20px 24px}.avatar-large{width:132px;height:132px}.messages{padding:20px 14px 12px}.message{max-width:86%}.composer{margin:0 10px 10px}}
