/* ============================================================
   BRICKWORK — assistant widget
   Loaded only on pages that carry assistant.js. Uses the design
   tokens from styles.css; nothing here introduces a new colour.
============================================================ */

/* launcher — sits above the mobile sticky bar (.mbar, z-index 90) */
.bwa-launch{
  position:fixed;right:18px;bottom:18px;z-index:95;
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--f-mono);font-weight:500;font-size:.8rem;
  letter-spacing:.06em;text-transform:uppercase;
  background:var(--ink);color:var(--on-dark);
  border:1.5px solid var(--ink);border-radius:var(--r);
  padding:13px 17px;box-shadow:var(--shadow);
  transition:transform .16s ease,box-shadow .16s ease;
}
.bwa-launch:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 0 var(--brick)}
.bwa-launch:active{transform:none;box-shadow:none}
.bwa-launch::before{
  content:"";width:7px;height:7px;border-radius:50%;background:var(--go);
  box-shadow:0 0 0 3px rgba(47,143,91,.25);animation:blink 2.4s infinite;
}
.bwa-open .bwa-launch{display:none}

/* panel */
.bwa{
  position:fixed;right:18px;bottom:18px;z-index:96;
  width:min(380px,calc(100vw - 24px));
  height:min(600px,calc(100dvh - 96px));
  display:none;flex-direction:column;overflow:hidden;
  background:var(--paper);border:1.5px solid var(--ink);
  border-radius:var(--r-lg);box-shadow:var(--shadow-lg);
}
.bwa.open{display:flex}

/* keep both clear of the mobile sticky bar */
@media(max-width:920px){
  .bwa-launch{bottom:86px}
  .bwa{bottom:86px;height:min(560px,calc(100dvh - 160px))}
}

/* header */
.bwa__head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--ink-2);color:var(--on-dark);padding:14px 16px;
  border-bottom:1.5px solid var(--ink);flex:none;
}
.bwa__title{font-family:var(--f-display);font-weight:800;font-size:1.15rem;text-transform:uppercase;line-height:1}
.bwa__sub{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--amber);margin-top:5px}
.bwa__close{color:var(--on-dark-mut);padding:6px;line-height:0;transition:color .15s}
.bwa__close:hover{color:var(--on-dark)}
.bwa__close svg{width:18px;height:18px}

/* messages */
.bwa__log{
  flex:1;overflow-y:auto;background:var(--concrete);
  padding:16px 14px;display:flex;flex-direction:column;gap:10px;
}
.bwa-m{
  max-width:88%;padding:10px 13px;border-radius:var(--r);
  font-size:.92rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:break-word;
}
.bwa-m--a{align-self:flex-start;background:var(--paper);border:1px solid var(--line-2)}
.bwa-m--u{align-self:flex-end;background:var(--ink);color:var(--on-dark)}
.bwa-m a{color:var(--brick-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.bwa-m--u a{color:var(--amber)}

/* typing indicator */
.bwa-typing{display:inline-flex;gap:5px;align-items:center;padding:13px}
.bwa-typing i{width:6px;height:6px;border-radius:50%;background:var(--faint);animation:bwa-b 1.1s infinite}
.bwa-typing i:nth-child(2){animation-delay:.18s}
.bwa-typing i:nth-child(3){animation-delay:.36s}
@keyframes bwa-b{0%,100%{opacity:.35;transform:none}50%{opacity:1;transform:translateY(-3px)}}

/* starter chips */
.bwa__chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 12px;background:var(--concrete);flex:none}
.bwa__chips button{
  font-family:var(--f-mono);font-size:.72rem;letter-spacing:.02em;color:var(--ink);
  background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r);
  padding:8px 12px;transition:background .15s,color .15s;
}
.bwa__chips button:hover{background:var(--brick-deep);color:var(--paper)}

/* Switch to the human lane. Understated on purpose: the AI answers most
   questions instantly and for a fraction of a penny, so this is the escape
   hatch rather than the headline. It hides itself once taken. */
.bwa__human{
  flex:none;display:block;width:100%;text-align:left;
  padding:0 14px 12px;background:var(--concrete);border:0;cursor:pointer;
  font-family:var(--f-mono);font-size:.68rem;letter-spacing:.04em;
  color:var(--muted);text-decoration:underline;text-underline-offset:3px;
}
.bwa__human:hover{color:var(--brick-deep)}

/* input row */
.bwa__form{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line-2);background:var(--paper);flex:none}
.bwa__form input{
  flex:1;min-width:0;background:var(--concrete);border:1.5px solid var(--line-2);
  border-radius:var(--r);padding:10px 12px;font-family:var(--f-body);font-size:.95rem;color:var(--ink);
  transition:border-color .18s,box-shadow .18s;
}
.bwa__form input:focus{outline:none;border-color:var(--brick-deep);box-shadow:0 0 0 3px rgba(var(--brick-rgb),.14)}
.bwa__send{
  flex:none;display:grid;place-items:center;width:42px;
  background:var(--brick-deep);color:var(--paper);border:1.5px solid var(--brick-deep);
  border-radius:var(--r);transition:opacity .15s;
}
.bwa__send:disabled{opacity:.45;cursor:default}
.bwa__send svg{width:17px;height:17px}

/* privacy note — the claim the whole widget exists to demonstrate */
.bwa__note{
  font-family:var(--f-mono);font-size:.62rem;letter-spacing:.03em;
  color:var(--faint);text-align:center;padding:0 14px 11px;background:var(--paper);flex:none;
}
.bwa__note a{color:var(--brick-deep)}
