/* Dr. Buzz — AI news assistant */
.drb{position:fixed;bottom:48px;z-index:190;font-family:var(--fb)}
.drb--left{left:18px}.drb--right{right:86px}
body:not(.has-ticker) .drb{bottom:18px}
.drb__launch{display:flex;align-items:center;gap:0;border:0;background:none;padding:0;cursor:pointer;position:relative}
.drb__avatar{display:block;width:64px;height:64px;border-radius:50%;flex:none;box-shadow:0 10px 26px rgba(255,102,0,.45),0 0 0 3px #fff;animation:drbBob 3.4s ease-in-out infinite;position:relative;z-index:2}
.drb__avatar svg{width:100%;height:100%;display:block}
.drb__launch:hover .drb__avatar{animation-play-state:paused;transform:scale(1.06)}
.drb__avatar:after{content:"";position:absolute;right:2px;bottom:4px;width:13px;height:13px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px #fff}
.drb-eyes{animation:drbBlink 4.5s infinite;transform-origin:60px 55px}
@keyframes drbBlink{0%,94%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
@keyframes drbBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.drb__hello{position:absolute;bottom:72px;left:0;width:230px;background:#fff;color:#222;border-radius:16px 16px 16px 4px;padding:10px 14px;font-size:.84rem;line-height:1.4;text-align:left;
  box-shadow:0 14px 36px rgba(0,0,0,.18);opacity:0;transform:translateY(8px) scale(.96);transform-origin:bottom left;pointer-events:none;transition:opacity .35s,transform .35s}
.drb__hello b{display:block;color:var(--brand);font-family:var(--fh)}
.drb--right .drb__hello{left:auto;right:0;border-radius:16px 16px 4px 16px;transform-origin:bottom right}
.drb.is-greeting .drb__hello,.drb__launch:hover .drb__hello{opacity:1;transform:none}
.drb.is-open .drb__hello{display:none}
.drb__panel{position:absolute;bottom:78px;left:0;width:min(380px,calc(100vw - 28px));height:min(560px,calc(100vh - 160px));display:flex;flex-direction:column;
  background:var(--card);color:var(--text);border-radius:20px;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.28);border:1px solid var(--line);animation:drbIn .3s cubic-bezier(.2,.8,.2,1)}
.drb--right .drb__panel{left:auto;right:0}
.drb__panel[hidden]{display:none}
@keyframes drbIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
.drb__head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:linear-gradient(120deg,#ff6600,#ff9a3c);color:#fff}
.drb__avatar--sm{width:42px;height:42px;animation:none;box-shadow:0 0 0 2px rgba(255,255,255,.8)}
.drb__avatar--sm:after{width:9px;height:9px;right:0;bottom:1px;box-shadow:0 0 0 2px #ff7a1a}
.drb__head b{display:block;font-family:var(--fh);font-size:1rem}
.drb__head small{display:flex;align-items:center;gap:5px;font-size:.74rem;opacity:.92}
.drb__dot{width:7px;height:7px;border-radius:50%;background:#bbf7d0}
.drb__x{margin-left:auto;width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;cursor:pointer}
.drb__x:hover{background:rgba(255,255,255,.32)}
.drb__msgs{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--bg-2)}
.drb__msg{max-width:88%;padding:10px 13px;border-radius:16px;font-size:.87rem;line-height:1.5;word-wrap:break-word}
.drb__msg--bot{align-self:flex-start;background:var(--card);border:1px solid var(--line);border-bottom-left-radius:4px}
.drb__msg--me{align-self:flex-end;background:var(--brand);color:#fff;border-bottom-right-radius:4px}
.drb__msg--hint{background:#fff7f0;border-color:#ffd4b3}
[data-theme="dark"] .drb__msg--hint{background:rgba(255,102,0,.12)}
.drb__msg a{color:var(--brand);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.drb__msg ul{margin:6px 0 2px;padding-left:18px}.drb__msg li{margin:3px 0}
.drb__src{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:5px}
.drb__src small{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.drb__src a{text-decoration:none;font-size:.78rem;font-weight:700;color:var(--text)}
.drb__src a:hover{color:var(--brand)}
.drb__src a i{color:var(--brand);margin-right:4px}
.drb__typing{display:inline-flex;gap:4px;padding:3px 0}
.drb__typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:drbDot 1s infinite}
.drb__typing i:nth-child(2){animation-delay:.15s}.drb__typing i:nth-child(3){animation-delay:.3s}
@keyframes drbDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.drb__sugs{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 0;background:var(--bg-2)}
.drb__sugs[hidden]{display:none}
.drb__sugs button{border:1px solid #ffc9a3;background:var(--card);color:var(--text);border-radius:999px;padding:.42em .85em;font-size:.76rem;font-weight:600;cursor:pointer;text-align:left}
.drb__sugs button:hover{background:var(--brand);border-color:var(--brand);color:#fff}
.drb__form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--card)}
.drb__form input{flex:1;border:1.5px solid var(--line);border-radius:999px;padding:.65em 1em;font-size:.88rem;background:var(--bg);color:var(--text);outline:none}
.drb__form input:focus{border-color:var(--brand)}
.drb__form button{width:42px;height:42px;border-radius:50%;border:0;background:var(--brand);color:#fff;cursor:pointer;flex:none}
.drb__note{margin:0;padding:0 14px 10px;font-size:.68rem;color:var(--muted);background:var(--card);text-align:center}
.ask-bot{display:inline-flex;align-items:center;gap:8px}
@media (max-width:640px){
  .drb--left{left:12px}.drb--right{right:12px}
  .drb__avatar{width:54px;height:54px}
  .drb__panel{position:fixed;left:8px!important;right:8px!important;bottom:92px;width:auto;height:min(70vh,560px)}
  .drb__hello{width:200px}
}
@media (prefers-reduced-motion:reduce){.drb__avatar,.drb-eyes{animation:none}}
@media print{.drb{display:none}}

/* ---------- v1.9: live 3D stage, voice controls ---------- */
.drb__panel{height:min(640px,calc(100vh - 130px))}
.drb__stage{position:relative;height:190px;flex:none;overflow:hidden;
  background:radial-gradient(70% 90% at 50% 100%,rgba(255,102,0,.22),transparent 70%),linear-gradient(180deg,#fff6ef,#ffe9d9)}
[data-theme="dark"] .drb__stage{background:radial-gradient(70% 90% at 50% 100%,rgba(255,102,0,.25),transparent 70%),linear-gradient(180deg,#1d1a18,#14110f)}
.drb__3d{position:absolute;inset:0}
.drb__3d canvas{display:block;width:100%!important;height:100%!important}
.drb__stage-fallback{position:absolute;left:50%;top:50%;width:120px;height:120px;transform:translate(-50%,-55%);transition:opacity .4s}
.drb__stage-fallback svg{width:100%;height:100%;filter:drop-shadow(0 10px 18px rgba(255,102,0,.35))}
.drb__stage.has-3d .drb__stage-fallback{opacity:0;pointer-events:none}
.drb__state{position:absolute;left:10px;bottom:8px;display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;color:#7c2d12;background:rgba(255,255,255,.75);padding:4px 9px;border-radius:999px;backdrop-filter:blur(4px)}
[data-theme="dark"] .drb__state{background:rgba(0,0,0,.5);color:#ffd2b0}
.drb__state-dot{width:7px;height:7px;border-radius:50%;background:#22c55e}
.drb__stage.is-listen .drb__state-dot{background:#ef4444;animation:tkPulse 1s infinite}
.drb__stage.is-think .drb__state-dot{background:#f59e0b}
.drb__stage.is-talk .drb__state-dot{background:var(--brand)}
.drb__hbtn{margin-left:auto;width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;cursor:pointer}
.drb__hbtn:hover{background:rgba(255,255,255,.32)}
.drb__hbtn+.drb__x{margin-left:6px}
.drb__mic{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line);background:var(--card);color:var(--brand);cursor:pointer;flex:none;font-size:1rem}
.drb__mic:hover{border-color:var(--brand)}
.drb__mic.is-on{background:#ef4444;border-color:#ef4444;color:#fff;animation:drbMic 1.2s infinite}
@keyframes drbMic{0%{box-shadow:0 0 0 0 rgba(239,68,68,.55)}100%{box-shadow:0 0 0 12px rgba(239,68,68,0)}}
@media (max-width:640px){.drb__stage{height:150px}.drb__panel{height:min(78vh,620px)}}
