/* ============================================================================
   FARMSys — Vendor chat popup
   Sitewide launcher + panel. Console language, same tokens as styles.css.
   Loads on every page EXCEPT the partner qualification page (see README).
   ========================================================================== */

.vendor{
  position:fixed;
  right:1rem;
  bottom:1rem;
  z-index:60;
  font-family:var(--font-mono);
}

/* ─── Launcher ────────────────────────────────────────────────────────────── */

.vendor__launcher{
  display:flex;align-items:center;gap:.625rem;
  padding:.75rem 1rem;
  min-height:48px;
  border:1px solid #00e5ff44;
  background:var(--term-bg);
  color:var(--cyan);
  font-family:var(--font-mono);font-size:.75rem;letter-spacing:.05em;
  cursor:pointer;
  box-shadow:0 0 0 1px rgba(0,229,255,.15),0 8px 24px rgba(0,0,0,.5);
  transition:border-color .2s ease,background-color .2s ease;
}
.vendor__launcher:hover{border-color:var(--cyan);background:#001a1f}
.vendor__launcher[hidden]{display:none}
.vendor__launcher-dot{
  width:.5rem;height:.5rem;border-radius:9999px;background:var(--green);
  flex-shrink:0;
}

/* ─── Panel ───────────────────────────────────────────────────────────────── */

.vendor__panel{
  display:flex;
  flex-direction:column;
  width:min(23rem,calc(100vw - 2rem));
  height:min(34rem,calc(100dvh - 6rem));
  border:1px solid rgba(0,229,255,.3);
  border-radius:8px;
  background:var(--term-bg);
  overflow:hidden;
  box-shadow:0 0 0 1px rgba(0,229,255,.15),0 16px 48px rgba(0,0,0,.65);
}
.vendor__panel[hidden]{display:none}

.vendor__bar{
  display:flex;align-items:center;gap:.5rem;
  padding:10px 12px;
  background:var(--term-bar);
  border-bottom:1px solid rgba(0,229,255,.2);
  flex-shrink:0;
}
.vendor__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.vendor__title{
  margin-left:.5rem;font-size:.6875rem;letter-spacing:.08em;
  text-transform:uppercase;color:#00e5ff99;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.vendor__close{
  margin-left:auto;flex-shrink:0;
  width:28px;height:28px;border:0;background:transparent;
  color:#00e5ff88;font-size:1rem;line-height:1;cursor:pointer;
  transition:color .2s ease;
}
.vendor__close:hover{color:var(--cyan)}

.vendor__log{
  flex:1;overflow-y:auto;overscroll-behavior:contain;
  padding:.875rem;scroll-behavior:smooth;
}
.vendor__system{font-size:.75rem;line-height:1.7;color:#00e5ff66}
.vendor__system > * + *{margin-top:.375rem}

.vendor__log .msg{padding:.75rem 0;font-size:.8125rem;line-height:1.7;gap:.5rem}
.vendor__log .msg__tag{font-size:.6875rem;line-height:1.7}
.vendor__log .msg__tools{display:none}

/* ─── Hand-off card: everything below the boundary ────────────────────────── */

.offer{
  margin:.75rem 0;
  border:1px solid #00ff8844;
  background:#00ff8806;
  padding:.875rem;
}
.offer__flag{
  font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--green);margin-bottom:.5rem;
}
.offer__name{
  font-family:var(--font-display);font-weight:700;font-size:.875rem;
  color:#fff;margin-bottom:.25rem;
}
.offer__meta{font-size:.75rem;line-height:1.6;color:var(--text-muted);margin-bottom:.75rem}
.offer__price{color:#fff}
.offer__price b{color:var(--green);font-weight:400}
.offer__actions{display:flex;flex-direction:column;gap:.375rem}
.offer__btn{
  padding:.5rem .75rem;border:1px solid #00e5ff44;background:transparent;
  color:var(--cyan);font-family:var(--font-mono);font-size:.75rem;
  letter-spacing:.05em;cursor:pointer;text-align:center;
  transition:border-color .2s ease,background-color .2s ease;
}
.offer__btn:hover{border-color:var(--cyan);background:#00e5ff11}
.offer__btn--solid{background:var(--cyan);color:#000;border-color:var(--cyan)}
.offer__btn--solid:hover{background:var(--cyan-bright)}
.offer__seam{
  margin-top:.5rem;font-size:.6875rem;line-height:1.5;color:#ffb80099;
}

.quote{margin:.75rem 0;border:1px solid #00e5ff22;padding:.875rem}
.quote__title{font-size:.75rem;color:var(--cyan);margin-bottom:.625rem}
.quote__row{margin-bottom:.5rem}
.quote__input{
  width:100%;padding:.5rem .625rem;background:var(--bg-alt);
  border:1px solid #00e5ff33;border-radius:4px;color:#fff;
  font-family:var(--font-mono);font-size:1rem;line-height:1.4;
}
.quote__input:focus{border-color:var(--cyan);outline:none}
.quote__error{margin-top:.25rem;font-size:.6875rem;color:#ff8b7a}
.quote__error[hidden]{display:none}

/* ─── Intent chips + composer ─────────────────────────────────────────────── */

.vendor__chips{
  display:flex;flex-wrap:wrap;gap:.375rem;
  padding:0 .875rem .625rem;flex-shrink:0;
}
.vendor__chips[hidden]{display:none}
.vendor__chip{
  padding:.3125rem .625rem;border:1px solid #00e5ff33;background:#00e5ff08;
  color:var(--cyan);font-family:var(--font-mono);font-size:.6875rem;
  cursor:pointer;transition:border-color .2s ease,background-color .2s ease;
}
.vendor__chip:hover{border-color:var(--cyan);background:#00e5ff14}
.vendor__chip[disabled]{opacity:.4;cursor:not-allowed}

.vendor__composer{
  display:flex;align-items:flex-end;gap:.5rem;
  padding:.625rem .875rem;
  border-top:1px solid rgba(0,229,255,.2);
  background:var(--term-bar);
  flex-shrink:0;
}
.vendor__input{
  flex:1;min-width:0;resize:none;max-height:6rem;
  padding:.5rem .625rem;background:var(--bg-alt);
  border:1px solid #00e5ff33;border-radius:4px;color:#fff;
  font-family:var(--font-mono);font-size:1rem;line-height:1.4;
}
.vendor__input:focus{border-color:var(--cyan);outline:none}
.vendor__input:disabled{opacity:.5}
.vendor__send{
  flex-shrink:0;min-width:44px;min-height:40px;
  border:0;border-radius:4px;background:var(--cyan);color:#000;
  font-family:var(--font-display);font-weight:700;font-size:.75rem;
  cursor:pointer;transition:background-color .2s ease;
}
.vendor__send:hover{background:var(--cyan-bright)}
.vendor__send[disabled]{opacity:.4;cursor:not-allowed}

.vendor__legal{
  padding:0 .875rem .625rem;font-size:.625rem;line-height:1.5;
  color:#00e5ff44;flex-shrink:0;
}

/* Full-bleed on phones: a 23rem panel over a 390px viewport is a modal anyway */
@media (max-width:639px){
  .vendor{right:0;bottom:0;left:0}
  .vendor__launcher{margin:0 1rem 1rem auto}
  .vendor__panel{
    width:100vw;height:100dvh;border-radius:0;border-left:0;border-right:0;border-bottom:0;
  }
  .offer__actions{flex-direction:row}
  .offer__btn{flex:1}
}
@media (prefers-reduced-motion:reduce){
  .vendor__log{scroll-behavior:auto}
}
