/* ==========================================================================
   BRAD floating chat widget (shared on every page)
   Pairs with js/brad-widget.js. Self-contained; uses site tokens when present.
   ========================================================================== */
.bradw{--bw-blue:var(--blue,#1E6FE6);--bw-navy:var(--navy,#081222);--bw-line:var(--line,#E3EAF3);--bw-muted:var(--muted,#5B6B86);font-family:var(--font-body,'Inter',system-ui,sans-serif);position:fixed;right:22px;bottom:22px;z-index:1000}
.bradw *{box-sizing:border-box}
.bradw-launcher{display:flex;align-items:center;gap:0;padding:0;border:0;background:none;cursor:pointer;position:relative}
.bradw-launcher:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(45,198,240,.65);border-radius:999px}
.bradw-label{background:var(--bw-navy);color:#fff;font-weight:600;font-size:.95rem;padding:12px 22px 12px 18px;border-radius:999px 0 0 999px;box-shadow:0 12px 30px -10px rgba(8,18,34,.6);margin-right:-14px;border:1px solid rgba(255,255,255,.12);white-space:nowrap}
.bradw-label small{display:block;font-weight:500;font-size:.7rem;color:#9FD9F2;letter-spacing:.04em}
.bradw-avatar{width:76px;height:76px;border-radius:50%;background:radial-gradient(circle at 50% 40%,#EAF6FF 0%,#CFE6FF 60%,#9CC6F5 100%);border:3px solid #fff;box-shadow:0 14px 34px -10px rgba(30,111,230,.7);display:grid;place-items:center;overflow:visible;position:relative}
.bradw-avatar img{width:66px;height:auto;margin-top:-10px;animation:bradw-bob 3.2s ease-in-out infinite;filter:drop-shadow(0 6px 8px rgba(8,18,34,.25))}
.bradw-avatar::after{content:"";position:absolute;right:2px;top:4px;width:14px;height:14px;border-radius:50%;background:#34D399;border:2px solid #fff}
@keyframes bradw-bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}
.bradw.is-open .bradw-label{display:none}
.bradw-panel{position:absolute;right:0;bottom:92px;width:384px;max-width:calc(100vw - 32px);height:580px;max-height:calc(100vh - 130px);background:#fff;border-radius:22px;box-shadow:0 30px 80px -20px rgba(8,18,34,.55),0 0 0 1px rgba(8,18,34,.06);display:flex;flex-direction:column;overflow:hidden}
.bradw-panel[hidden]{display:none}
.bradw-head{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 16px;background:var(--bw-navy);color:#fff;position:relative}
.bradw-head::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 120% at 85% 0%,rgba(45,198,240,.35),transparent 70%);pointer-events:none}
.bradw-head > *{position:relative}
.bradw-head img{width:42px;height:42px;object-fit:contain;background:#EAF6FF;border-radius:50%;padding:3px}
.bradw-title{flex:1;min-width:0}
.bradw-title strong{display:block;font-family:var(--font-display,'Space Grotesk',sans-serif);font-size:1.08rem;letter-spacing:-.01em}
.bradw-title span{display:block;font-size:.74rem;color:#A9B8CF}
.bradw-icon-btn{width:36px;height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;display:grid;place-items:center;cursor:pointer}
.bradw-icon-btn:hover{background:rgba(255,255,255,.14)}
.bradw-icon-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(45,198,240,.65)}
.bradw-icon-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bradw-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:#F7F9FC}
.bradw-msg{max-width:86%;padding:10px 13px;border-radius:15px;font-size:.92rem;line-height:1.45;color:#0F1E33;word-wrap:break-word}
.bradw-msg a{color:var(--bw-blue);font-weight:600}
.bradw-msg--bot{align-self:flex-start;background:#fff;border:1px solid var(--bw-line);border-bottom-left-radius:4px}
.bradw-msg--user{align-self:flex-end;background:var(--bw-blue);color:#fff;border-bottom-right-radius:4px}
.bradw-msg--user a{color:#fff}
.bradw-msg--note{align-self:center;background:transparent;color:var(--bw-muted);font-size:.76rem;text-align:center;padding:2px 8px}
.bradw-typing{display:inline-flex;gap:4px;align-items:center}
.bradw-typing i{width:6px;height:6px;border-radius:50%;background:#9AAAC2;animation:bradw-dot 1s infinite}
.bradw-typing i:nth-child(2){animation-delay:.15s}.bradw-typing i:nth-child(3){animation-delay:.3s}
@keyframes bradw-dot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.bradw-chips{display:flex;gap:8px;flex-wrap:wrap;padding:10px 14px 4px;background:#fff;border-top:1px solid var(--bw-line)}
.bradw-chip{font:inherit;font-size:.8rem;font-weight:500;padding:7px 11px;border-radius:999px;border:1px solid #C9D7EA;background:#F4F8FD;color:#17407F;cursor:pointer}
.bradw-chip:hover{border-color:var(--bw-blue);background:#EAF2FE}
.bradw-chip:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(45,198,240,.65)}
.bradw-form{display:flex;gap:8px;align-items:center;padding:10px 12px 8px;background:#fff}
.bradw-input{flex:1;min-width:0;font:inherit;font-size:.95rem;padding:11px 14px;border-radius:999px;border:1.5px solid var(--bw-line);background:#F7F9FC;color:#0F1E33}
.bradw-input:focus{outline:none;border-color:var(--bw-blue);background:#fff;box-shadow:0 0 0 3px rgba(45,198,240,.35)}
.bradw-round{width:44px;height:44px;flex:none;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;color:#fff;background:linear-gradient(120deg,#2DC6F0 0%,#1E6FE6 55%,#1746B0 100%)}
.bradw-round svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bradw-round:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(45,198,240,.65)}
.bradw-mic{background:#fff;color:var(--bw-blue);border:1.5px solid #C9D7EA}
.bradw-mic[aria-pressed="true"]{background:#EF4444;color:#fff;border-color:#EF4444;animation:bradw-pulse 1.2s infinite}
.bradw-mic.is-unsupported{opacity:.55}
@keyframes bradw-pulse{0%{box-shadow:0 0 0 0 rgba(239,68,68,.5)}100%{box-shadow:0 0 0 12px rgba(239,68,68,0)}}
.bradw-foot{padding:0 14px 10px;background:#fff;font-size:.7rem;color:var(--bw-muted);text-align:center}
.bradw-foot a{color:var(--bw-muted);text-decoration:underline}
.bradw.is-speaking .bradw-head img{box-shadow:0 0 0 3px rgba(45,198,240,.7)}
@media (max-width:640px){
  .bradw{right:12px;bottom:12px}
  .bradw-label{font-size:.85rem;padding:10px 18px 10px 14px}
  .bradw-label small{display:none}
  .bradw-avatar{width:64px;height:64px}
  .bradw-avatar img{width:56px}
  .bradw-panel{position:fixed;left:8px;right:8px;bottom:84px;width:auto;max-width:none;height:auto;top:72px;max-height:none}
}
/* iris: launcher steps aside while it overlaps a video player (class set by js/main.js); panel never affected */
.bradw{transition:opacity .2s ease,visibility .2s ease,transform .2s ease}
.bradw.bradw--dodge:not(.is-open){opacity:0;visibility:hidden;transform:translateY(16px);pointer-events:none}
@media (prefers-reduced-motion:reduce){.bradw-avatar img,.bradw-typing i,.bradw-mic[aria-pressed="true"]{animation:none}}
