/* burrowpad layered chat component */
.bchat{
  --bc-h:clamp(300px,58dvh,520px);
  --bc-hot:#b84e1c;
  --bc-min:clamp(240px,34dvh,300px);
  --bc-bg:var(--cream,#fffaf2);
  --bc-bub:#fff;
  --bc-ink:var(--ink,#1e0f30);
  --bc-mut:var(--muted,#6c5a80);
  position:relative;display:flex;flex-direction:column;min-width:0;
  background:#fff;border:2px solid var(--p900,#2e1548);border-radius:28px;
  box-shadow:0 6px 0 var(--p900,#2e1548);overflow:hidden;
  font-family:Inter,system-ui,sans-serif;color:var(--bc-ink);
}
.bchat[data-layer="inner"]{--bc-bg:var(--lilac,#f1e7fd)}
.bchat[data-layer="core"]{--bc-bg:var(--p900,#2e1548);--bc-bub:#3b1d5c;--bc-ink:#fff;--bc-mut:var(--p300,#c79bf0)}
.bchat *{box-sizing:border-box}
.bchat button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}

/* head */
.bc-head{display:flex;align-items:center;gap:12px;padding:16px 18px 4px}
.bc-titles{flex:1;min-width:0}
.bc-title{font-size:16px;font-weight:800;letter-spacing:-.02em;margin:0;color:var(--ink,#1e0f30);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bc-subtitle{font-size:13px;color:var(--muted,#6c5a80);font-weight:600;margin:2px 0 0}
.bc-pill{flex:none;font-size:12px;font-weight:800;border-radius:8px;padding:4px 9px;background:var(--lilac,#f1e7fd);color:var(--p700,#5e2f8c)}
.bchat[data-layer="core"] .bc-pill{background:var(--p900,#2e1548);color:#fff}

/* onion ring tabs */
.bc-tabs{display:flex;gap:6px;padding:12px 18px 0}
.bc-tab{flex:1;min-width:0;min-height:48px;display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:14px 14px 0 0;
  background:var(--cream,#fffaf2);border:1.5px solid var(--line,rgba(46,21,72,.12))!important;border-bottom:0!important;
  color:var(--muted,#6c5a80)!important;text-align:left;position:relative;transition:background .2s,color .2s}
.bc-tab:hover{color:var(--ink,#1e0f30)!important}
.bc-ring{width:30px;height:26px;flex:none;color:var(--muted2,#716185);transition:transform .35s cubic-bezier(.3,1.4,.5,1)}
.bc-tab-txt{min-width:0;display:flex;flex-direction:column;line-height:1.15}
.bc-tab-txt b{font-size:13.5px;font-weight:800}
.bc-tab-txt small{font-size:12px;font-weight:600;color:var(--muted2,#716185);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bc-tab-lock{margin-left:auto;flex:none;display:inline-flex}
.bc-tab-lock[hidden]{display:none}
.bc-lockico{width:12px;height:14px;color:var(--muted2,#716185)}
.bc-tab.is-on{color:var(--p800,#4a2370)!important}
.bc-tab.is-on .bc-ring{color:var(--p900,#2e1548);transform:scale(1.08)}
.bc-tab[data-layer="outer"].is-on{background:var(--cream,#fffaf2);border-color:var(--p900,#2e1548)!important}
.bc-tab[data-layer="inner"].is-on{background:var(--lilac,#f1e7fd);border-color:var(--p900,#2e1548)!important}
.bc-tab[data-layer="core"].is-on{background:var(--p900,#2e1548);border-color:var(--p900,#2e1548)!important;color:#fff!important}
.bc-tab[data-layer="core"].is-on small{color:var(--p300,#c79bf0)}
.bc-tab:focus-visible{outline:3px solid var(--p600,#7640a8);outline-offset:-3px}
.bc-tab[data-layer="core"].is-on .bc-ring{color:var(--p300,#c79bf0)}
.bc-tab[data-layer="core"].is-on .bc-lockico{color:var(--p300,#c79bf0)}

/* body */
.bc-body{position:relative;display:flex;flex-direction:column;background:var(--bc-bg);border-top:2px solid var(--p900,#2e1548);transition:background .35s;
  /* grows with the messages, stops at --bc-h, never smaller than --bc-min */
  height:auto;min-height:min(var(--bc-min),var(--bc-h));max-height:var(--bc-h)}
.bc-body.is-locked{height:var(--bc-h);min-height:min(var(--bc-h),400px)}
.bchat-compact .bc-body{height:var(--bc-h);min-height:0}
/* the global chat page sizes the chat itself and lets the body fill it */
.gb-chat.bchat .bc-body{max-height:none}
.bc-list{flex:1;min-height:0;overflow-y:auto;outline:none;overscroll-behavior:contain;padding:16px 18px;scrollbar-width:thin;scrollbar-color:rgba(46,21,72,.25) transparent}
.bchat[data-layer="core"] .bc-list{scrollbar-color:rgba(199,155,240,.35) transparent}
.bc-list[hidden]{display:none}
.bc-list:focus-visible{box-shadow:inset 0 0 0 3px var(--p600,#7640a8)}
.bchat[data-layer="core"] .bc-list:focus-visible{box-shadow:inset 0 0 0 3px var(--p300,#c79bf0)}
.bc-body.is-peel .bc-list,.bc-body.is-peel .bc-lock{animation:bcPeel .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes bcPeel{
  from{clip-path:ellipse(0% 0% at 50% 45%);opacity:.4;transform:scale(.97)}
  to{clip-path:ellipse(120% 120% at 50% 45%);opacity:1;transform:none}
}
.bc-body.is-loading .bc-msgs{opacity:.5}
.bc-more{display:block;min-height:40px;margin:0 auto 12px;font-size:13px;font-weight:700;color:var(--bc-mut)!important;background:rgba(255,255,255,.6)!important;border:1px solid var(--line,rgba(46,21,72,.12))!important;border-radius:999px;padding:10px 16px}
.bc-more[hidden]{display:none}
.bchat[data-layer="core"] .bc-more{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.14)!important}

/* message */
.bc-m{display:flex;gap:10px;align-items:flex-start}
.bc-m + .bc-m{margin-top:12px}
.bc-m.is-new{animation:bcIn .32s cubic-bezier(.2,.9,.3,1.2) both}
@keyframes bcIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.bc-av{width:34px;height:34px;border-radius:11px;overflow:hidden;flex:none}
.bc-av svg{display:block}
.bc-bub{position:relative;background:var(--bc-bub);color:var(--bc-ink);border-radius:4px 16px 16px 16px;padding:10px 13px;max-width:min(82%,560px);min-width:0;box-shadow:0 1px 0 rgba(46,21,72,.06)}
.bchat[data-layer="outer"] .bc-bub{border:1.5px solid var(--line,rgba(46,21,72,.12))}
.bc-m.is-mine{flex-direction:row-reverse}
.bc-m.is-mine .bc-bub{background:#fff7ea;border-radius:16px 4px 16px 16px}
.bc-m.is-mine .bc-who{justify-content:flex-end}
.bchat[data-layer="inner"] .bc-m.is-mine .bc-bub{background:#fffaf2}
.bchat[data-layer="core"] .bc-m.is-mine .bc-bub{background:#4a2370}
.bc-who{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:13px}
.bc-alias{font-weight:800}
.bc-time{font-size:12.5px;font-weight:600;color:var(--muted2,#716185);margin-left:2px}
.bchat[data-layer="core"] .bc-time{color:var(--p300,#c79bf0)}
.bc-tx{font-size:14px;line-height:1.45;margin-top:4px;font-weight:500;overflow-wrap:anywhere;white-space:pre-wrap}

.bc-badge{display:inline-flex;align-items:center;font-size:12px;font-weight:800;padding:2px 7px;border-radius:6px;background:var(--lilac2,#e4d2fb);color:var(--p800,#4a2370);letter-spacing:.01em}
.bc-badge-dev{background:var(--sun,#ffb24d);color:var(--p900,#2e1548)}
.bc-badge-core{background:var(--p900,#2e1548);color:#fff}
.bc-badge-bag{background:transparent;color:var(--p600,#7640a8);border:1.5px solid var(--lilac3,#d6bdf7);padding:1px 6px}
.bchat[data-layer="core"] .bc-badge-holder{background:var(--p300,#c79bf0);color:var(--p900,#2e1548)}
.bchat[data-layer="core"] .bc-badge-core{background:var(--p300,#c79bf0);color:var(--p900,#2e1548)}
.bchat[data-layer="core"] .bc-badge-bag{color:var(--p300,#c79bf0);border-color:rgba(199,155,240,.45)}

.bc-burn{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--p600,#7640a8);margin-top:6px;font-variant-numeric:tabular-nums;transition:color .3s}
.bc-flame{width:10px;height:12px;flex:none}
.bc-burn.is-soon{color:var(--bc-hot)}
.bchat[data-layer="core"] .bc-burn{color:var(--p300,#c79bf0)}
.bchat[data-layer="core"] .bc-burn.is-soon{color:var(--sun,#ffb24d)}
.bc-m.has-burn .bc-bub{border-style:dashed}
.bchat[data-layer="inner"] .bc-m.has-burn .bc-bub,.bchat[data-layer="core"] .bc-m.has-burn .bc-bub{outline:1.5px dashed rgba(145,87,196,.45);outline-offset:-1.5px}

/* burn away: a glowing edge eats the bubble, embers drift up, the row folds shut */
.bc-m.is-burning{animation:bcFold .38s cubic-bezier(.5,0,.3,1) .95s both;overflow:visible}
.bc-m.is-burning .bc-av{animation:bcAvGone .5s ease .55s both}
.bc-m.is-burning .bc-bub{
  -webkit-mask-image:linear-gradient(100deg,#000 40%,rgba(0,0,0,.35) 48%,transparent 56%);
  mask-image:linear-gradient(100deg,#000 40%,rgba(0,0,0,.35) 48%,transparent 56%);
  -webkit-mask-size:300% 100%;mask-size:300% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  animation:bcEat 1s cubic-bezier(.45,.05,.55,.95) both;
}
.bc-m.is-burning .bc-bub::after{
  content:"";position:absolute;top:-4px;bottom:-4px;width:26px;left:150%;
  background:radial-gradient(closest-side,rgba(255,226,140,.95),rgba(255,140,60,.75) 45%,rgba(217,70,40,0) 100%);
  filter:blur(2px);pointer-events:none;
  animation:bcEdge 1s cubic-bezier(.45,.05,.55,.95) both;
}
@keyframes bcEat{
  0%{-webkit-mask-position:0 0;mask-position:0 0;transform:none}
  100%{-webkit-mask-position:100% 0;mask-position:100% 0;transform:translateY(-3px) rotate(-1.2deg)}
}
@keyframes bcEdge{0%{left:150%}100%{left:-50%}}
@keyframes bcAvGone{to{opacity:0;transform:scale(.6) rotate(-8deg);filter:grayscale(1)}}
@keyframes bcFold{
  from{max-height:var(--h,80px);opacity:1}
  to{max-height:0;margin-top:0;opacity:0;padding:0}
}
.bc-ash{position:absolute;inset:0;pointer-events:none;overflow:visible}
.bc-ash i{position:absolute;left:var(--x);top:50%;width:var(--sz);height:var(--sz);border-radius:50%;
  background:radial-gradient(circle,#fff1c2,#ff9a3d 55%,rgba(217,70,40,0) 75%);opacity:0;
  animation:bcEmber .9s ease-out var(--d) both}
@keyframes bcEmber{
  0%{opacity:0;transform:translate(0,0) scale(1)}
  15%{opacity:1}
  100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.3)}
}
@media (prefers-reduced-motion:reduce){
  .bc-m.is-burning{animation:none;opacity:0;transition:opacity .2s}
  .bc-m.is-burning .bc-bub,.bc-m.is-burning .bc-bub::after,.bc-m.is-burning .bc-av{animation:none;-webkit-mask-image:none;mask-image:none}
  .bc-m.is-burning .bc-bub::after{display:none}
  .bc-ash{display:none}
  .bc-body.is-peel .bc-list,.bc-body.is-peel .bc-lock,.bc-m.is-new,.bc-jump{animation:none}
  .bc-ring,.bc-tab,.bc-body,.bc-btn,.bc-send,.bc-burn{transition:none}
  .bc-btn:hover:not([disabled]),.bc-send:hover:not([disabled]){transform:none}
}

/* empty */
.bc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;min-height:calc(min(var(--bc-min),var(--bc-h)) - 40px);padding:12px 0;color:var(--bc-mut)}
.bchat-compact .bc-empty{min-height:calc(var(--bc-h) - 40px)}
.bc-empty[hidden]{display:none}
.bc-empty .bc-ring{width:64px;height:56px;color:var(--bc-mut);margin-bottom:6px}
.bc-empty b{font-size:15px;font-weight:800;color:var(--bc-ink)}
.bc-empty span{font-size:13px;font-weight:600}
.bc-empty .bc-btn{margin-top:8px}

.bc-jump{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);min-height:40px;background:var(--p900,#2e1548)!important;color:#fff!important;font-size:13px;font-weight:800;border-radius:999px;padding:10px 16px;box-shadow:0 3px 0 #12061f;animation:bcIn .25s ease both}
.bchat[data-layer="core"] .bc-jump{background:var(--p300,#c79bf0)!important;color:var(--p900,#2e1548)!important;box-shadow:0 3px 0 #8a5ec2}
.bc-jump[hidden]{display:none}

/* lock screen */
.bc-lock{flex:1;min-height:0;display:flex;padding:24px 18px;overflow:auto}
.bc-lock[hidden]{display:none}
.bc-lock-card{margin:auto;max-width:380px;text-align:center;display:flex;flex-direction:column;align-items:center}
.bc-lockart{width:148px;height:auto;margin-bottom:14px}
.bc-lock-card h4{font-size:19px;font-weight:900;letter-spacing:-.025em;margin:0;color:var(--bc-ink)}
.bc-need{margin:10px 0 0;font-size:14.5px;font-weight:800;color:var(--p700,#5e2f8c);background:#fff;border:2px solid var(--p900,#2e1548);border-radius:12px;padding:8px 14px;box-shadow:0 3px 0 var(--p900,#2e1548)}
.bchat[data-layer="core"] .bc-need{background:var(--p300,#c79bf0);color:var(--p900,#2e1548);border-color:var(--p300,#c79bf0);box-shadow:0 3px 0 #8a5ec2}
.bc-lock-sub{font-size:13.5px;line-height:1.5;color:var(--bc-mut);font-weight:500;margin:14px 0 0}
.bc-lock-acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:16px}

/* buttons (local so the component stands alone) */
.bc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;font-weight:800!important;font-size:14px;border-radius:12px;padding:10px 16px;transition:transform .15s,box-shadow .15s;white-space:nowrap}
.bc-btn:hover:not([disabled]){transform:translateY(-2px)}
.bc-btn[disabled]{opacity:.6;cursor:default}
.bc-btn-primary{background:var(--p600,#7640a8)!important;color:#fff!important;box-shadow:0 4px 0 var(--p900,#2e1548)}
.bc-btn-dark{background:var(--p900,#2e1548)!important;color:#fff!important;box-shadow:0 4px 0 #12061f}
.bc-btn-ghost{background:#fff!important;color:var(--ink,#1e0f30)!important;border:2px solid var(--p900,#2e1548)!important;box-shadow:0 3px 0 var(--p900,#2e1548);padding:8px 14px}
.bchat[data-layer="core"] .bc-btn-dark{background:var(--p300,#c79bf0)!important;color:var(--p900,#2e1548)!important;box-shadow:0 4px 0 #8a5ec2}
.bchat[data-layer="core"] .bc-btn-primary{background:var(--p300,#c79bf0)!important;color:var(--p900,#2e1548)!important;box-shadow:0 4px 0 #8a5ec2}

/* foot */
.bc-foot{border-top:1.5px solid var(--line,rgba(46,21,72,.12));background:#fff}
.bc-foot[hidden]{display:none}
.bc-signprompt{display:flex;align-items:center;gap:14px;padding:12px 14px}
.bc-signprompt > div{flex:1;min-width:0;display:flex;flex-direction:column}
.bc-signprompt b{font-size:14px;font-weight:800}
.bc-signprompt span{font-size:13px;color:var(--muted,#6c5a80);font-weight:500;margin-top:2px}
.bc-compose{padding:10px 14px 12px}
.bc-burnsel{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.bc-burnsel-lbl{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:800;color:var(--muted,#6c5a80);margin-right:4px}
.bc-burnsel button{min-height:40px;min-width:44px;font-size:13px!important;font-weight:800!important;color:var(--muted,#6c5a80)!important;padding:0 12px;border-radius:10px;border:1.5px solid var(--line,rgba(46,21,72,.12))!important;background:var(--cream,#fffaf2)!important;transition:background .15s,color .15s}
.bc-burnsel button:hover{color:var(--ink,#1e0f30)!important}
.bc-burnsel button.is-on{background:var(--p900,#2e1548)!important;border-color:var(--p900,#2e1548)!important;color:#fff!important}
.bc-compose.is-burn .bc-burnsel button.is-on{background:var(--bc-hot)!important;border-color:var(--bc-hot)!important}
.bc-compose.is-burn .bc-burnsel-lbl{color:var(--bc-hot)}
.bc-inrow{display:flex;gap:8px}
.bc-input{flex:1;min-width:0;min-height:46px;border:1.5px solid var(--line,rgba(46,21,72,.12));border-radius:12px;padding:11px 13px;font:inherit;font-size:14px;background:var(--cream,#fffaf2);color:var(--ink,#1e0f30);outline:none;transition:border-color .15s,background .15s}
.bc-input:focus{border-color:var(--p600,#7640a8);background:#fff;box-shadow:0 0 0 3px var(--p300,#c79bf0)}
.bc-input::placeholder{color:var(--muted2,#716185);font-weight:500}
.bc-compose.is-burn .bc-input{border-style:dashed}
.bc-send{flex:none;min-height:46px;min-width:64px;background:var(--p900,#2e1548)!important;color:#fff!important;border-radius:12px;padding:0 18px;font-weight:800!important;font-size:14px;transition:transform .15s}
.bc-send:hover:not([disabled]){transform:translateY(-1px)}
.bc-send[disabled]{opacity:.6}

/* offline: quiet text note, no indicator light */
.bchat.is-offline .bc-subtitle::after{content:" . reconnecting";color:var(--muted2,#716185)}

/* compact (previews) */
.bchat-compact{--bc-h:clamp(240px,46dvh,300px);border-radius:22px;box-shadow:0 5px 0 var(--p900,#2e1548)}
.bchat-compact .bc-head{padding:12px 14px 2px}
.bchat-compact .bc-subtitle{display:none}
.bchat-compact .bc-tabs{padding:10px 14px 0;gap:5px}
.bchat-compact .bc-tab{min-height:44px;padding:7px 8px;gap:6px}
.bchat-compact .bc-tab-txt small{display:none}
.bchat-compact .bc-ring{width:24px;height:21px}
.bchat-compact .bc-list{padding:12px 14px}
.bchat-compact .bc-m + .bc-m{margin-top:9px}
.bchat-compact .bc-av{width:28px;height:28px;border-radius:9px}
.bchat-compact .bc-bub{padding:8px 11px}
.bchat-compact .bc-tx{font-size:13.5px}
.bchat-compact .bc-compose{padding:8px 12px 10px}
.bchat-compact .bc-burnsel{margin-bottom:6px}
.bchat-compact .bc-lockart{width:100px;margin-bottom:8px}
.bchat-compact .bc-lock-sub{display:none}

@media (max-width:640px){
  .bchat{--bc-h:clamp(260px,calc(100dvh - 230px),460px);border-radius:22px}
  .bchat-compact{--bc-h:clamp(220px,44dvh,280px)}
  .bc-head{padding:14px 14px 2px}
  .bc-tabs{padding:10px 12px 0;gap:4px}
  .bc-tab{flex-direction:column;align-items:center;gap:3px;padding:8px 4px;text-align:center}
  .bc-tab-txt{align-items:center;max-width:100%}
  .bc-tab-txt small{font-size:12px}
  .bc-tab-lock{position:absolute;top:6px;right:7px}
  .bc-list{padding:14px 12px}
  .bc-bub{max-width:86%}
  .bc-signprompt{flex-direction:column;align-items:stretch;gap:10px}
  .bc-signprompt .bc-btn{width:100%}
  .bc-compose{padding:10px 12px 12px}
  .bc-burnsel{gap:4px}
  .bc-burnsel button{flex:1;min-width:0;padding:0 6px}
  .bc-input{font-size:16px}
  .bc-lock{padding:18px 14px}
  .bc-lockart{width:116px}
}
@media (max-width:360px){
  .bc-head{padding:12px 12px 2px}
  .bc-tabs{padding:8px 8px 0;gap:3px}
  .bc-list{padding:12px 10px}
  .bc-bub{max-width:88%}
  .bc-burnsel-lbl{margin-right:0}
  .bc-send{min-width:56px;padding:0 12px}
}
/* fallback for browsers without dynamic viewport units */
@supports not (height:1dvh){
  .bchat{--bc-h:clamp(300px,58vh,520px)}
  .bchat-compact{--bc-h:300px}
  @media (max-width:640px){
    .bchat{--bc-h:clamp(260px,calc(100vh - 230px),460px)}
    .bchat-compact{--bc-h:280px}
  }
}

/* global chat page on phones: follow the visible viewport so the keyboard never pushes the tabs under the header */
@media (max-width:900px){
  .gb-chat.bchat{height:calc(100dvh - var(--gb-head,62px) - 32px);min-height:min(480px,calc(100dvh - var(--gb-head,62px) - 32px))}
}
@media (max-width:640px){
  .gb-chat.bchat{height:calc(100dvh - var(--gb-head,62px) - 24px);min-height:min(440px,calc(100dvh - var(--gb-head,62px) - 24px))}
}
/* short phone screens and an open keyboard: trim the chrome so messages and the composer keep the room */
@media (max-width:640px) and (max-height:720px){
  .bc-subtitle{display:none}
  .bc-head{padding-top:10px}
  .bc-tabs{padding-top:8px}
  .bc-tab{min-height:44px;padding:6px 4px}
  .bc-tab-txt small{display:none}
  .bc-signprompt{padding:10px 12px;gap:8px}
  .bc-signprompt span{display:none}
}
@media (max-width:640px) and (max-height:520px){
  .gb-chat.bchat{min-height:220px}
  .bc-burnsel{margin-bottom:6px}
}
