/* =========================================================================
   BTX Sciences — Feature add-ons (quick order, compare, favorites, cite,
   floating contact, AI chat, alerts). Uses the core design tokens.
   ========================================================================= */

/* row tools under catalog product names */
.btx-row-tools{display:inline-flex;gap:6px;margin-left:8px;vertical-align:middle;flex-wrap:wrap}

/* small action buttons (compare / favorite / cite) */
.btx-compare-btn,.btx-fav-btn,.btx-cite-btn{
  display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:1px solid var(--btx-line);
  background:#fff;color:var(--btx-navy-800);font-weight:600;font-size:.85rem;padding:7px 13px;border-radius:999px;
  line-height:1;transition:all .15s}
.btx-compare-btn:hover,.btx-cite-btn:hover{border-color:var(--btx-blue);color:var(--btx-blue)}
.btx-compare-btn--sm,.btx-fav-btn--sm{padding:3px 8px;font-size:.72rem;gap:3px}
.btx-compare-btn.is-active{background:var(--btx-blue);color:#fff;border-color:var(--btx-blue)}
.btx-fav-btn{color:var(--btx-muted);padding:7px 10px}
.btx-fav-btn:hover{color:#e11d48;border-color:#e11d48}
.btx-fav-btn.is-active{color:#e11d48;border-color:#e11d48}
.btx-fav-btn.is-active svg{fill:#e11d48}

/* compare tray */
.btx-compare-tray{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:120;
  background:var(--btx-navy-800);color:#fff;border-radius:999px;padding:10px 14px 10px 20px;
  display:none;align-items:center;gap:14px;box-shadow:var(--btx-shadow-lg)}
.btx-compare-tray.show{display:flex}
.btx-compare-tray__count{font-weight:600;font-size:.92rem}
.btx-compare-tray a,.btx-compare-tray button{border:0;cursor:pointer;font-weight:600;font-size:.9rem}
.btx-compare-tray .btx-btn{padding:9px 18px}
.btx-compare-tray__clear{background:transparent;color:#9fb6d6}
.btx-compare-tray__clear:hover{color:#fff}

/* compare table page */
.btx-compare-wrap{overflow-x:auto}
.btx-compare-table{border-collapse:collapse;width:100%;min-width:540px;background:#fff;border:1px solid var(--btx-line);border-radius:var(--btx-radius);overflow:hidden}
.btx-compare-table th,.btx-compare-table td{padding:13px 16px;border-bottom:1px solid var(--btx-line);text-align:left;font-size:.92rem;vertical-align:top}
.btx-compare-table thead th{background:var(--btx-navy-800);color:#fff}
.btx-compare-table thead th a{color:#fff}
.btx-compare-table tbody th{background:var(--btx-bg-alt);width:150px;color:var(--btx-muted);font-family:var(--btx-font);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}

/* cite popup (reuses ai overlay look) */
.btx-cite-pop{position:fixed;inset:0;z-index:200;background:rgba(6,16,31,.6);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:20px}
.btx-cite-pop[hidden]{display:none}
.btx-cite-card{background:#fff;border-radius:16px;max-width:620px;width:100%;padding:26px;box-shadow:var(--btx-shadow-lg);position:relative}
.btx-cite-card h3{margin:0 0 4px}
.btx-cite-tabs{display:flex;gap:8px;margin:16px 0 10px}
.btx-cite-tabs button{border:1px solid var(--btx-line);background:#fff;border-radius:999px;padding:6px 14px;cursor:pointer;font-weight:600;font-size:.85rem}
.btx-cite-tabs button.is-active{background:var(--btx-blue);color:#fff;border-color:var(--btx-blue)}
.btx-cite-text{width:100%;height:150px;border:1px solid var(--btx-line);border-radius:10px;padding:12px;font-family:Consolas,monospace;font-size:.82rem;white-space:pre}
.btx-cite-actions{display:flex;gap:10px;margin-top:12px}

/* floating contact (FAB) — bottom right */
.btx-fab{position:fixed;right:20px;bottom:20px;z-index:130;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.btx-fab__toggle{width:58px;height:58px;border-radius:50%;border:0;cursor:pointer;color:#fff;
  background:linear-gradient(135deg,var(--btx-blue),var(--btx-cyan));box-shadow:var(--btx-shadow-lg);
  display:flex;align-items:center;justify-content:center;transition:transform .2s}
.btx-fab__toggle:hover{transform:scale(1.06)}
.btx-fab__menu{display:none;flex-direction:column;gap:8px;align-items:flex-end}
.btx-fab.open .btx-fab__menu{display:flex}
.btx-fab__item{display:inline-flex;align-items:center;gap:9px;background:#fff;color:var(--btx-navy-800);
  padding:10px 16px;border-radius:999px;box-shadow:var(--btx-shadow);font-weight:600;font-size:.9rem}
.btx-fab__item:hover{color:var(--btx-blue)}
.btx-fab__wa{background:#25d366;color:#fff}
.btx-fab__wa:hover{color:#fff;opacity:.92}

/* AI chat widget — bottom left */
.btx-chat{position:fixed;left:20px;bottom:20px;z-index:130}
.btx-chat__launch{display:inline-flex;align-items:center;gap:8px;border:0;cursor:pointer;color:#fff;
  background:var(--btx-navy-800);padding:12px 20px;border-radius:999px;font-weight:700;box-shadow:var(--btx-shadow-lg)}
.btx-chat__launch:hover{background:var(--btx-navy-700)}
.btx-chat__panel{position:absolute;left:0;bottom:64px;width:360px;max-width:calc(100vw - 40px);height:480px;max-height:70vh;
  background:#fff;border-radius:16px;box-shadow:var(--btx-shadow-lg);display:flex;flex-direction:column;overflow:hidden}
.btx-chat__panel[hidden]{display:none}
.btx-chat__head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--btx-line)}
.btx-chat__close{border:0;background:none;font-size:1.5rem;cursor:pointer;color:var(--btx-muted);line-height:1}
.btx-chat__log{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.btx-chat__msg{max-width:85%;padding:10px 14px;border-radius:14px;font-size:.92rem;line-height:1.5;white-space:pre-wrap}
.btx-chat__msg--ai{background:var(--btx-bg-tint);color:var(--btx-ink);align-self:flex-start;border-bottom-left-radius:4px}
.btx-chat__msg--me{background:var(--btx-blue);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.btx-chat__form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--btx-line)}
.btx-chat__form input{flex:1;border:1px solid var(--btx-line);border-radius:999px;padding:10px 14px;font:inherit;outline:none}
.btx-chat__form input:focus{border-color:var(--btx-blue)}
.btx-chat__form button{border:0;background:var(--btx-blue);color:#fff;width:42px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}
.btx-chat__disc{margin:0;padding:0 12px 10px;font-size:.74rem;color:var(--btx-muted)}

@media (max-width:520px){
  .btx-chat__launch span{display:none}
  .btx-fab{right:14px;bottom:14px}
  .btx-chat{left:14px;bottom:14px}
}
