/* =======================================================
   Radial Magnet Bot — magnet-bot.css
   Navy #0b1f3a  ·  Lime Green #78e03a
   ======================================================= */

.rmb-root {
  --navy:        #0b1f3a;
  --navy-mid:    #112444;
  --navy-light:  #1a3560;
  --navy-hi:     #234070;
  --navy-border: #1e3a6a;
  --green:       #78e03a;
  --green-dim:   #4fa022;
  --green-glow:  rgba(120,224,58,.14);
  --green-text:  #5cc82a;
  --white:       #f0f4ff;
  --text:        #dce6f8;
  --text-mid:    #7a9cc8;
  --text-low:    #3a5478;
  --success:     #3ecf8e;
  --danger:      #f05252;
  --warn:        #f0a030;
  --sans:        'Inter', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --mono:        'JetBrains Mono', 'Fira Mono', monospace;
  --r:           8px;
  --r-lg:        12px;
  --r-xl:        16px;
  --t:           160ms cubic-bezier(.4,0,.2,1);

  font-family:   var(--sans);
  font-size:     15px;
  line-height:   1.5;
  color:         var(--text);
  background:    transparent;
  box-sizing:    border-box;
  max-width:     700px;
  margin:        0 auto 40px;
}

.rmb-root *, .rmb-root *::before, .rmb-root *::after {
  box-sizing: inherit;
}

/* ── Header ──────────────────────────────────────────────────── */
.rmb-header {
  background:      var(--navy);
  border-radius:   var(--r-xl) var(--r-xl) 0 0;
  padding:         14px 18px;
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  border-bottom:   2px solid var(--green);
}

.rmb-header-left {
  display:     flex;
  align-items: center;
  gap:         11px;
}

.rmb-avatar {
  width:         40px;
  height:        40px;
  flex-shrink:   0;
  border-radius: 6px;
  overflow:      hidden;
  display:       flex;
  align-items:   center;
  justify-content: center;
}

.rmb-avatar img { width: 40px; height: 40px; display: block; border-radius: 6px; }

.rmb-online-dot {
  display:        inline-block;
  width:          8px;
  height:         8px;
  border-radius:  50%;
  background:     var(--green);
  margin-right:   5px;
  animation:      rmb-pulse 2s ease-in-out infinite;
}

.rmb-bot-name {
  font-weight:    800;
  font-size:      .95rem;
  color:          var(--white);
  letter-spacing: .01em;
}

.rmb-bot-tag {
  font-size:      .67rem;
  color:          var(--text-mid);
  letter-spacing: .05em;
  text-transform: uppercase;
  margin-top:     1px;
}

.rmb-restart-btn {
  background:     transparent;
  border:         1px solid var(--navy-border);
  color:          var(--text-mid);
  border-radius:  var(--r);
  font-family:    var(--sans);
  font-size:      .7rem;
  font-weight:    600;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding:        5px 12px;
  cursor:         pointer;
  transition:     all var(--t);
}

.rmb-restart-btn:hover {
  border-color: var(--green-dim);
  color:        var(--green);
}

/* ── Messages area ───────────────────────────────────────────── */
.rmb-messages {
  background:   var(--navy-mid);
  overflow-y:   scroll;
  padding:      18px 16px;
  display:      flex;
  flex-direction: column;
  gap:          14px;
  scroll-behavior: smooth;
  border-left:  1px solid var(--navy-border);
  border-right: 1px solid var(--navy-border);
}

/* Scrollbar */
/* Scrollbar — high contrast so users can clearly see they can scroll */
.rmb-messages::-webkit-scrollbar { width: 8px; }
.rmb-messages::-webkit-scrollbar-track {
  background:    rgba(255,255,255,0.06);
  border-radius: 4px;
  margin:        4px 0;
}
.rmb-messages::-webkit-scrollbar-thumb {
  background:    rgba(120,224,58,0.55);
  border-radius: 4px;
  min-height:    48px;
  border:        2px solid transparent;
  background-clip: padding-box;
}
.rmb-messages::-webkit-scrollbar-thumb:hover {
  background:    rgba(120,224,58,0.85);
  background-clip: padding-box;
}
/* Firefox scrollbar */
.rmb-messages {
  scrollbar-width: thin;
  scrollbar-color: rgba(120,224,58,0.55) rgba(255,255,255,0.06);
}

/* ── Message rows ────────────────────────────────────────────── */
.rmb-row {
  display:   flex;
  gap:       9px;
  max-width: 88%;
}

.rmb-row--bot  { align-self: flex-start; align-items: flex-end; }
.rmb-row--user { align-self: flex-end;   flex-direction: row-reverse; }

.rmb-row-avatar {
  width:         28px;
  height:        28px;
  border-radius: 50%;
  background:    var(--green-glow);
  border:        1px solid var(--green-dim);
  flex-shrink:   0;
  display:       flex;
  align-items:   center;
  justify-content: center;
  font-size:     .7rem;
  font-weight:   800;
  color:         var(--green);
  letter-spacing: .02em;
}

/* ── Bubbles ─────────────────────────────────────────────────── */
.rmb-bubble {
  padding:       10px 14px;
  border-radius: var(--r-lg);
  font-size:     .875rem;
  line-height:   1.55;
  max-width:     100%;
}

.rmb-row--bot .rmb-bubble {
  background:         var(--navy);
  border:             1px solid var(--navy-border);
  border-bottom-left-radius: 3px;
  color:              var(--text);
}

.rmb-row--user .rmb-bubble {
  background:          var(--navy-light);
  border:              1px solid var(--navy-hi);
  border-bottom-right-radius: 3px;
  color:               var(--white);
}

/* ── Typing indicator ────────────────────────────────────────── */
.rmb-typing {
  display:     flex;
  align-items: center;
  gap:         4px;
  padding:     12px 14px;
  background:  var(--navy);
  border:      1px solid var(--navy-border);
  border-radius: var(--r-lg);
  border-bottom-left-radius: 3px;
}

.rmb-dot {
  width:         7px;
  height:        7px;
  border-radius: 50%;
  background:    var(--green);
  opacity:       .4;
  animation:     rmb-bounce .9s ease-in-out infinite;
}
.rmb-dot:nth-child(2) { animation-delay: .15s; }
.rmb-dot:nth-child(3) { animation-delay: .30s; }

@keyframes rmb-bounce {
  0%,80%,100% { transform: translateY(0);   opacity:.3; }
  40%         { transform: translateY(-5px); opacity:1;  }
}

@keyframes rmb-pulse {
  0%,100% { opacity: 1; }
  50%     { opacity: .4; }
}

/* ── Product cards inside chat ───────────────────────────────── */
.rmb-results-bubble {
  align-self: flex-start;
  width:      100%;
  max-width:  100%;
}

.rmb-results-label {
  font-size:      .67rem;
  font-weight:    700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color:          var(--text-low);
  margin-bottom:  9px;
  padding-left:   2px;
}

.rmb-cards {
  display:               grid;
  grid-template-columns: repeat(2, 1fr);
  gap:                   10px;
}

.rmb-card {
  background:    var(--navy);
  border:        1px solid var(--navy-border);
  border-radius: var(--r-lg);
  overflow:      hidden;
  transition:    border-color var(--t), transform var(--t);
  display:       flex;
  flex-direction: column;
}

.rmb-card:hover {
  border-color: var(--green-dim);
  transform:    translateY(-1px);
}

.rmb-card-top {
  padding:       11px 13px 8px;
  border-bottom: 1px solid var(--navy-mid);
  display:       flex;
  align-items:   flex-start;
  justify-content: space-between;
  gap:           8px;
}

.rmb-card-sku {
  font-family:    var(--mono);
  font-size:      .72rem;
  font-weight:    700;
  color:          var(--green);
  letter-spacing: .04em;
}

.rmb-card-name {
  font-size:   .82rem;
  font-weight: 600;
  color:       var(--white);
  margin-top:  2px;
  line-height: 1.3;
}

.rmb-shape-pip {
  flex-shrink:    0;
  font-size:      .58rem;
  font-weight:    700;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding:        2px 6px;
  border-radius:  4px;
  margin-top:     1px;
  white-space:    nowrap;
}

.rmb-pip-disc  { background:rgba(74,182,232,.1); color:#4ab6e8; border:1px solid rgba(74,182,232,.25); }
.rmb-pip-ring  { background:rgba(192,122,245,.1); color:#c07af5; border:1px solid rgba(192,122,245,.25); }
.rmb-pip-block { background:rgba(120,224,58,.1);  color:var(--green); border:1px solid rgba(120,224,58,.25); }
.rmb-pip-pot   { background:rgba(245,181,74,.1);  color:#f5b54a; border:1px solid rgba(245,181,74,.25); }
.rmb-pip-other { background:var(--navy-mid); color:var(--text-mid); border:1px solid var(--navy-border); }
.rmb-pip-arc      { background:rgba(232,140,74,.1);  color:#e88c4a; border:1px solid rgba(232,140,74,.25); }
.rmb-pip-sphere   { background:rgba(90,200,190,.1);  color:#5ac8be; border:1px solid rgba(90,200,190,.25); }
.rmb-pip-material { background:rgba(200,208,224,.1); color:#c8d0e0; border:1px solid rgba(200,208,224,.25); }
.rmb-pip-family   { background:rgba(2,206,6,.12);    color:#02CE06; border:1px solid rgba(2,206,6,.30); }

/* ── Links inside bot messages ─────────────────────────────────────────── */
.rmb-bubble .rmb-link,
.rmb-link {
  color: #02CE06;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  /* Long resource URLs must wrap rather than stretch the bubble off-screen. */
  word-break: break-word;
  overflow-wrap: anywhere;
  transition: color .15s, background .15s;
  border-radius: 3px;
}
.rmb-bubble .rmb-link:hover,
.rmb-link:hover { color: #4ee650; background: rgba(2,206,6,.10); }
.rmb-link:focus-visible { outline: 2px solid #02CE06; outline-offset: 2px; }
.rmb-link-host { color: var(--text-mid); font-size: .85em; }

/* ── Add to cart ───────────────────────────────────────────────────────── */
.rmb-cart-controls { display:flex; align-items:stretch; gap:8px; flex:1 1 auto; min-width:0; }

.rmb-qty { display:flex; align-items:stretch; border:1px solid var(--navy-hi); border-radius:var(--r); overflow:hidden; flex:0 0 auto; background:var(--navy); }
.rmb-qty-btn {
  width:30px; border:0; background:transparent; color:var(--text-mid);
  font-size:16px; line-height:1; cursor:pointer; font-family:inherit;
  transition:background .15s, color .15s;
}
.rmb-qty-btn:hover { background:rgba(2,206,6,.12); color:#02CE06; }
.rmb-qty-btn:focus-visible { outline:2px solid #02CE06; outline-offset:-2px; }
.rmb-qty-input {
  width:46px; border:0; background:transparent; color:var(--white);
  text-align:center; font-family:inherit; font-size:.85rem;
  -moz-appearance:textfield;
}
.rmb-qty-input::-webkit-outer-spin-button,
.rmb-qty-input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.rmb-qty-input:focus-visible { outline:2px solid #02CE06; outline-offset:-2px; }

.rmb-btn-cart {
  flex:1 1 auto; min-width:0;
  background:#02CE06; color:#081526; border:1px solid #02CE06;
  border-radius:var(--r); padding:8px 14px; cursor:pointer;
  font-family:inherit; font-size:.82rem; font-weight:700; letter-spacing:.02em;
  transition:background .15s, border-color .15s, transform .12s;
}
.rmb-btn-cart:hover { background:#4ee650; border-color:#4ee650; }
.rmb-btn-cart:active { transform:scale(.98); }
.rmb-btn-cart:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.rmb-btn-cart[disabled] { opacity:.75; cursor:default; }
.rmb-btn-cart--done { background:var(--navy-light); border-color:#02CE06; color:#02CE06; }

/* When a cart button is present, View Product steps back to a quiet secondary.
   The base .rmb-btn-view is width:100% for the solo case; that must be undone
   here or the anchor refuses to shrink inside the flex row and overlaps the
   quantity stepper, swallowing its clicks. */
.rmb-btn-view--secondary {
  flex:            0 0 auto;
  width:           auto !important;
  padding:         8px 12px;
  font-size:       .72rem;
  background:      transparent !important;
  border:          1px solid var(--navy-hi);
  color:           var(--text-mid) !important;
  white-space:     nowrap;
}
.rmb-btn-view--secondary:hover {
  border-color:    #02CE06;
  color:           #02CE06 !important;
  background:      rgba(2,206,6,.08) !important;
}

.rmb-cart-note {
  display:flex; align-items:center; flex-wrap:wrap; gap:10px;
  margin-top:8px; padding:8px 10px;
  background:rgba(2,206,6,.08); border:1px solid rgba(2,206,6,.28);
  border-radius:var(--r); font-size:.78rem; color:var(--text);
}
.rmb-cart-note--error { background:rgba(255,120,90,.08); border-color:rgba(255,120,90,.3); color:#ffb4a2; }
.rmb-cart-link { color:#02CE06; text-decoration:underline; text-underline-offset:2px; white-space:nowrap; }
.rmb-cart-link:hover { color:#4ee650; }
.rmb-cart-link--go { font-weight:700; }

@media (max-width:420px){
  .rmb-cart-controls { flex-wrap:wrap; }
  .rmb-btn-cart { width:100%; }
}

/* ── Deferred results button ───────────────────────────────────────────── */
.rmb-reveal-wrap { margin:10px 0 4px; display:flex; }
.rmb-reveal-btn {
  display:flex; align-items:center; gap:10px; width:100%;
  background:var(--navy-mid); border:1px solid rgba(2,206,6,.35);
  border-radius:10px; padding:11px 14px; cursor:pointer; text-align:left;
  font-family:inherit; color:var(--text-hi);
  transition:background .15s, border-color .15s, transform .12s;
}
.rmb-reveal-btn:hover { background:rgba(2,206,6,.08); border-color:rgba(2,206,6,.6); }
.rmb-reveal-btn:active { transform:scale(.99); }
.rmb-reveal-btn:focus-visible { outline:2px solid #02CE06; outline-offset:2px; }
.rmb-reveal-btn[disabled] { opacity:.5; cursor:default; }
.rmb-reveal-icon {
  flex:0 0 auto; width:22px; height:22px; border-radius:50%;
  background:rgba(2,206,6,.15); color:#02CE06;
  display:flex; align-items:center; justify-content:center;
  font-size:11px; line-height:1;
}
.rmb-reveal-text { display:flex; flex-direction:column; gap:2px; min-width:0; }
.rmb-reveal-main { font-size:.86rem; font-weight:600; }
.rmb-reveal-sub {
  font-size:.72rem; color:var(--text-mid); letter-spacing:.02em;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

.rmb-card-dims {
  padding:    8px 13px;
  display:    flex;
  flex-wrap:  wrap;
  gap:        10px;
  background: var(--navy-mid);
  border-bottom: 1px solid var(--navy-mid);
}

.rmb-dim { display: flex; flex-direction: column; gap: 1px; }

.rmb-dim-label {
  font-size:      .58rem;
  font-weight:    700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color:          var(--text-low);
}

.rmb-dim-value {
  font-family: var(--mono);
  font-size:   .78rem;
  color:       var(--text);
  font-weight: 600;
}

.rmb-card-foot {
  padding:       8px 13px;
  display:       flex;
  align-items:   center;
  justify-content: space-between;
  gap:           8px;
}

.rmb-card-price {
  font-size:   .9rem;
  font-weight: 800;
  color:       var(--white);
}

.rmb-card-price small {
  display:        block;
  font-size:      .6rem;
  color:          var(--text-mid);
  font-weight:    400;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.rmb-stock {
  font-size:     .65rem;
  font-family:   var(--mono);
  font-weight:   600;
  padding:       2px 7px;
  border-radius: 20px;
  white-space:   nowrap;
}
.rmb-stock-in  { background:#0e1f19; color:var(--success); border:1px solid #1e4d38; }
.rmb-stock-out { background:#1f0e0e; color:var(--danger);  border:1px solid #4d1e1e; }
.rmb-stock-low { background:#1e1508; color:var(--warn);    border:1px solid #5a3a10; }

.rmb-card-actions {
  display: flex;
  gap:     7px;
  padding: 0 13px 11px;
}

.rmb-btn-detail {
  background:     transparent;
  border:         1px solid var(--navy-border);
  color:          var(--text-mid);
  border-radius:  6px;
  font-family:    var(--sans);
  font-size:      .67rem;
  font-weight:    700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding:        5px 10px;
  cursor:         pointer;
  transition:     all var(--t);
  text-decoration: none;
  display:        inline-flex;
  align-items:    center;
}
.rmb-btn-detail:hover { border-color: var(--green-dim); color: var(--green); text-decoration: none; }

.rmb-btn-cart {
  flex:            1;
  background:      var(--green);
  color:           #ffffff;
  border:          none;
  border-radius:   6px;
  font-family:     var(--sans);
  font-size:       .67rem;
  font-weight:     800;
  letter-spacing:  .04em;
  text-transform:  uppercase;
  padding:         5px 10px;
  cursor:          pointer;
  transition:      all var(--t);
  text-decoration: none;
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
}
.rmb-btn-cart:hover { background: #8fea50; text-decoration: none; }

/* No results */
.rmb-no-results {
  background:    var(--navy);
  border:        1px solid var(--navy-border);
  border-radius: var(--r-lg);
  padding:       16px;
  font-size:     .82rem;
  color:         var(--text-mid);
  text-align:    center;
}

/* ── Quick-reply chips ───────────────────────────────────────── */
.rmb-chips-row {
  background:    var(--navy);
  border-left:   1px solid var(--navy-border);
  border-right:  1px solid var(--navy-border);
  padding:       10px 14px;
  display:       flex;
  flex-wrap:     wrap;
  gap:           7px;
  min-height:    48px;
  align-items:   center;
  transition:    min-height var(--t);
}

.rmb-chips-row:empty { min-height: 0; padding: 0 14px; border: none; }

.rmb-chip {
  background:     var(--navy-light);
  border:         1px solid var(--navy-border);
  color:          var(--text);
  border-radius:  20px;
  font-family:    var(--sans);
  font-size:      .78rem;
  font-weight:    600;
  padding:        5px 13px;
  cursor:         pointer;
  transition:     all var(--t);
  white-space:    nowrap;
}

.rmb-chip:hover {
  background:   var(--green-glow);
  border-color: var(--green-dim);
  color:        var(--green);
}

/* ── Input bar ───────────────────────────────────────────────── */
.rmb-input-bar {
  background:      var(--navy);
  border:          1px solid var(--navy-border);
  border-top:      none;
  border-radius:   0 0 var(--r-xl) var(--r-xl);
  padding:         12px 14px;
  display:         flex;
  gap:             8px;
  align-items:     center;
}

.rmb-input {
  flex:          1;
  background:    var(--navy-mid);
  border:        1px solid var(--navy-border);
  color:         var(--text);
  border-radius: var(--r);
  padding:       10px 14px;
  font-family:   var(--sans);
  font-size:     .875rem;
  outline:       none;
  transition:    border-color var(--t), box-shadow var(--t);
  min-width:     0;
}

.rmb-input::placeholder { color: var(--text-low); }

.rmb-input:focus {
  border-color: var(--green);
  box-shadow:   0 0 0 3px rgba(120,224,58,.1);
}

.rmb-send-btn {
  background:    var(--green);
  border:        none;
  border-radius: var(--r);
  width:         42px;
  height:        42px;
  display:       flex;
  align-items:   center;
  justify-content: center;
  cursor:        pointer;
  flex-shrink:   0;
  transition:    all var(--t);
  color:         var(--navy);
}

.rmb-send-btn:hover {
  background:  #8fea50;
  box-shadow:  0 0 12px rgba(120,224,58,.35);
}

.rmb-send-btn:disabled {
  opacity: .4;
  cursor:  not-allowed;
}

.rmb-send-btn svg { pointer-events: none; }

/* ── Fade-in animation for new messages ──────────────────────── */
@keyframes rmb-fadein {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0);   }
}

.rmb-row, .rmb-results-bubble {
  animation: rmb-fadein .22s ease-out both;
}

/* ── Timestamp ───────────────────────────────────────────────── */
.rmb-ts {
  font-size:  .62rem;
  color:      var(--text-low);
  text-align: center;
  margin:     2px 0;
  letter-spacing: .04em;
}

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 500px) {
  .rmb-cards { grid-template-columns: 1fr; }
  .rmb-row   { max-width: 96%; }
  .rmb-header { padding: 10px 12px; }
  .rmb-messages { padding: 12px 10px; }
}

/* =======================================================
   Product card overhaul — v1.2.0
   Full-width link, prominent CTAs, large tap targets
   ======================================================= */

/* Results wrapper */
.rmb-results-wrap {
  align-self:    flex-start;
  width:         100%;
  margin-top:    4px;
}

.rmb-results-label {
  font-size:      .67rem;
  font-weight:    700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color:          var(--text-low);
  margin-bottom:  10px;
  padding-left:   2px;
}

/* Card grid */
.rmb-cards {
  display:               grid;
  grid-template-columns: repeat(2, 1fr);
  gap:                   12px;
}

/* Remove old rmb-results-bubble */
.rmb-results-bubble { display: none; }

/* Card shell */
.rmb-card {
  background:     var(--navy);
  border:         1px solid var(--navy-border);
  border-radius:  var(--r-lg);
  overflow:       hidden;
  display:        flex;
  flex-direction: column;
  transition:     border-color var(--t), box-shadow var(--t), transform var(--t);
}

.rmb-card:hover {
  border-color: var(--green-dim);
  transform:    translateY(-2px);
  box-shadow:   0 6px 20px rgba(0,0,0,.4), 0 0 0 1px rgba(120,224,58,.1);
}

/* ── Clickable link area ─────────────────────────────────── */
.rmb-card-link {
  display:         block;
  text-decoration: none;
  color:           inherit;
  flex:            1;
}

.rmb-card-link:hover { text-decoration: none; }

/* Header inside link */
.rmb-card-head {
  display:         flex;
  align-items:     flex-start;
  justify-content: space-between;
  padding:         13px 14px 10px;
  border-bottom:   1px solid var(--navy-mid);
  gap:             8px;
  transition:      background var(--t);
}

.rmb-card-link:hover .rmb-card-head {
  background: rgba(120,224,58,.04);
}

.rmb-card-head-left { flex: 1; min-width: 0; }

.rmb-card-sku {
  font-family:    var(--mono);
  font-size:      .72rem;
  font-weight:    700;
  color:          var(--green);
  letter-spacing: .04em;
  white-space:    nowrap;
  overflow:       hidden;
  text-overflow:  ellipsis;
}

.rmb-card-name {
  font-size:    .86rem;
  font-weight:  600;
  color:        var(--white);
  margin-top:   3px;
  line-height:  1.3;
  /* show underline hint on hover */
}

.rmb-card-link:hover .rmb-card-name {
  color:           var(--green);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Shape pip */
.rmb-shape-pip {
  flex-shrink:    0;
  font-size:      .58rem;
  font-weight:    700;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding:        2px 7px;
  border-radius:  4px;
  white-space:    nowrap;
  margin-top:     2px;
}
.rmb-pip-disc  { background:rgba(74,182,232,.1);  color:#4ab6e8; border:1px solid rgba(74,182,232,.25); }
.rmb-pip-ring  { background:rgba(192,122,245,.1); color:#c07af5; border:1px solid rgba(192,122,245,.25); }
.rmb-pip-block { background:rgba(120,224,58,.1);  color:var(--green); border:1px solid rgba(120,224,58,.25); }
.rmb-pip-pot   { background:rgba(245,181,74,.1);  color:#f5b54a; border:1px solid rgba(245,181,74,.25); }
.rmb-pip-other { background:var(--navy-mid); color:var(--text-mid); border:1px solid var(--navy-border); }
.rmb-pip-arc      { background:rgba(232,140,74,.1);  color:#e88c4a; border:1px solid rgba(232,140,74,.25); }
.rmb-pip-sphere   { background:rgba(90,200,190,.1);  color:#5ac8be; border:1px solid rgba(90,200,190,.25); }
.rmb-pip-material { background:rgba(200,208,224,.1); color:#c8d0e0; border:1px solid rgba(200,208,224,.25); }
.rmb-pip-family   { background:rgba(2,206,6,.12);    color:#02CE06; border:1px solid rgba(2,206,6,.30); }

/* ── Links inside bot messages ─────────────────────────────────────────── */
.rmb-bubble .rmb-link,
.rmb-link {
  color: #02CE06;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  /* Long resource URLs must wrap rather than stretch the bubble off-screen. */
  word-break: break-word;
  overflow-wrap: anywhere;
  transition: color .15s, background .15s;
  border-radius: 3px;
}
.rmb-bubble .rmb-link:hover,
.rmb-link:hover { color: #4ee650; background: rgba(2,206,6,.10); }
.rmb-link:focus-visible { outline: 2px solid #02CE06; outline-offset: 2px; }
.rmb-link-host { color: var(--text-mid); font-size: .85em; }

/* ── Add to cart ───────────────────────────────────────────────────────── */
.rmb-cart-controls { display:flex; align-items:stretch; gap:8px; flex:1 1 auto; min-width:0; }

.rmb-qty { display:flex; align-items:stretch; border:1px solid var(--navy-hi); border-radius:var(--r); overflow:hidden; flex:0 0 auto; background:var(--navy); }
.rmb-qty-btn {
  width:30px; border:0; background:transparent; color:var(--text-mid);
  font-size:16px; line-height:1; cursor:pointer; font-family:inherit;
  transition:background .15s, color .15s;
}
.rmb-qty-btn:hover { background:rgba(2,206,6,.12); color:#02CE06; }
.rmb-qty-btn:focus-visible { outline:2px solid #02CE06; outline-offset:-2px; }
.rmb-qty-input {
  width:46px; border:0; background:transparent; color:var(--white);
  text-align:center; font-family:inherit; font-size:.85rem;
  -moz-appearance:textfield;
}
.rmb-qty-input::-webkit-outer-spin-button,
.rmb-qty-input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.rmb-qty-input:focus-visible { outline:2px solid #02CE06; outline-offset:-2px; }

.rmb-btn-cart {
  flex:1 1 auto; min-width:0;
  background:#02CE06; color:#081526; border:1px solid #02CE06;
  border-radius:var(--r); padding:8px 14px; cursor:pointer;
  font-family:inherit; font-size:.82rem; font-weight:700; letter-spacing:.02em;
  transition:background .15s, border-color .15s, transform .12s;
}
.rmb-btn-cart:hover { background:#4ee650; border-color:#4ee650; }
.rmb-btn-cart:active { transform:scale(.98); }
.rmb-btn-cart:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.rmb-btn-cart[disabled] { opacity:.75; cursor:default; }
.rmb-btn-cart--done { background:var(--navy-light); border-color:#02CE06; color:#02CE06; }

/* When a cart button is present, View Product steps back to a quiet secondary.
   The base .rmb-btn-view is width:100% for the solo case; that must be undone
   here or the anchor refuses to shrink inside the flex row and overlaps the
   quantity stepper, swallowing its clicks. */
.rmb-btn-view--secondary {
  flex:            0 0 auto;
  width:           auto !important;
  padding:         8px 12px;
  font-size:       .72rem;
  background:      transparent !important;
  border:          1px solid var(--navy-hi);
  color:           var(--text-mid) !important;
  white-space:     nowrap;
}
.rmb-btn-view--secondary:hover {
  border-color:    #02CE06;
  color:           #02CE06 !important;
  background:      rgba(2,206,6,.08) !important;
}

.rmb-cart-note {
  display:flex; align-items:center; flex-wrap:wrap; gap:10px;
  margin-top:8px; padding:8px 10px;
  background:rgba(2,206,6,.08); border:1px solid rgba(2,206,6,.28);
  border-radius:var(--r); font-size:.78rem; color:var(--text);
}
.rmb-cart-note--error { background:rgba(255,120,90,.08); border-color:rgba(255,120,90,.3); color:#ffb4a2; }
.rmb-cart-link { color:#02CE06; text-decoration:underline; text-underline-offset:2px; white-space:nowrap; }
.rmb-cart-link:hover { color:#4ee650; }
.rmb-cart-link--go { font-weight:700; }

@media (max-width:420px){
  .rmb-cart-controls { flex-wrap:wrap; }
  .rmb-btn-cart { width:100%; }
}

/* ── Deferred results button ───────────────────────────────────────────── */
.rmb-reveal-wrap { margin:10px 0 4px; display:flex; }
.rmb-reveal-btn {
  display:flex; align-items:center; gap:10px; width:100%;
  background:var(--navy-mid); border:1px solid rgba(2,206,6,.35);
  border-radius:10px; padding:11px 14px; cursor:pointer; text-align:left;
  font-family:inherit; color:var(--text-hi);
  transition:background .15s, border-color .15s, transform .12s;
}
.rmb-reveal-btn:hover { background:rgba(2,206,6,.08); border-color:rgba(2,206,6,.6); }
.rmb-reveal-btn:active { transform:scale(.99); }
.rmb-reveal-btn:focus-visible { outline:2px solid #02CE06; outline-offset:2px; }
.rmb-reveal-btn[disabled] { opacity:.5; cursor:default; }
.rmb-reveal-icon {
  flex:0 0 auto; width:22px; height:22px; border-radius:50%;
  background:rgba(2,206,6,.15); color:#02CE06;
  display:flex; align-items:center; justify-content:center;
  font-size:11px; line-height:1;
}
.rmb-reveal-text { display:flex; flex-direction:column; gap:2px; min-width:0; }
.rmb-reveal-main { font-size:.86rem; font-weight:600; }
.rmb-reveal-sub {
  font-size:.72rem; color:var(--text-mid); letter-spacing:.02em;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

/* Dims strip */
.rmb-card-dims {
  padding:   9px 14px;
  display:   flex;
  flex-wrap: wrap;
  gap:       10px;
  background: var(--navy-mid);
  border-bottom: 1px solid rgba(255,255,255,.04);
}

.rmb-card-dims--extras {
  background: transparent;
  border-bottom: none;
  padding-top: 8px;
}

.rmb-dim { display: flex; flex-direction: column; gap: 2px; }

.rmb-dim-label {
  font-size:      .58rem;
  font-weight:    700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color:          var(--text-low);
}

.rmb-dim-value {
  font-family: var(--mono);
  font-size:   .8rem;
  color:       var(--text);
  font-weight: 600;
}

/* Footer: price + stock */
.rmb-card-foot {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         10px 14px;
  gap:             8px;
}

.rmb-card-price {
  display:     flex;
  flex-direction: column;
  gap:         1px;
}

.rmb-card-price small {
  font-size:      .6rem;
  color:          var(--text-low);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.rmb-card-price span {
  font-size:   1rem;
  font-weight: 800;
  color:       var(--white);
  font-family: var(--mono);
}

.rmb-stock {
  font-size:     .65rem;
  font-family:   var(--mono);
  font-weight:   600;
  padding:       3px 8px;
  border-radius: 20px;
  white-space:   nowrap;
}
.rmb-stock-in  { background:#0e1f19; color:var(--success); border:1px solid #1e4d38; }
.rmb-stock-out { background:#1f0e0e; color:var(--danger);  border:1px solid #4d1e1e; }
.rmb-stock-low { background:#1e1508; color:var(--warn);    border:1px solid #5a3a10; }

/* ── CTA button ────────────────────────────────────────── */
.rmb-card-actions {
  border-top: 1px solid var(--navy-border);
}

/* View Product — full width */
.rmb-btn-view {
  display:         flex;
  align-items:     center;
  justify-content: center;
  gap:             6px;
  width:           100%;
  padding:         12px 10px;
  font-family:     var(--sans);
  font-size:       .78rem;
  font-weight:     800;
  letter-spacing:  .06em;
  text-transform:  uppercase;
  text-decoration: none;
  cursor:          pointer;
  transition:      all var(--t);
  line-height:     1;
  text-align:      center;
  background:      var(--green);
  color:           #ffffff !important;
  text-shadow:     0 1px 2px rgba(0,0,0,.35);
  border-radius:   0 0 var(--r-lg) var(--r-lg);
}
.rmb-btn-view:hover {
  background:      var(--green-dim);
  box-shadow:      0 0 12px rgba(120,224,58,.3);
  color:           #ffffff !important;
  text-decoration: none;
}

/* No results */
.rmb-no-results {
  background:    var(--navy);
  border:        1px solid var(--navy-border);
  border-radius: var(--r-lg);
  padding:       18px 16px;
  font-size:     .82rem;
  color:         var(--text-mid);
  text-align:    center;
  line-height:   1.6;
}

.rmb-no-results a {
  color:           var(--green);
  text-decoration: underline;
}

/* Responsive: stack to 1 col on narrow */
@media (max-width: 460px) {
  .rmb-cards { grid-template-columns: 1fr; }
}

/* =======================================================
   Mic button + Share panel — v1.3.0
   ======================================================= */

/* ── Mic button ────────────────────────────────────────── */
.rmb-mic-btn {
  flex-shrink:   0;
  width:         42px;
  height:        42px;
  background:    var(--navy-light);
  border:        1px solid var(--navy-border);
  border-radius: var(--r);
  color:         var(--text-mid);
  cursor:        pointer;
  display:       flex;
  align-items:   center;
  justify-content: center;
  transition:    all var(--t);
}

.rmb-mic-btn:hover {
  border-color: var(--green-dim);
  color:        var(--green);
}

/* Pulsing state when actively listening */
.rmb-mic-btn.rmb-mic-active {
  background:  rgba(120,224,58,.15);
  border-color: var(--green);
  color:        var(--green);
  animation:   rmb-mic-pulse 1s ease-in-out infinite;
}

@keyframes rmb-mic-pulse {
  0%,100% { box-shadow: 0 0 0 0   rgba(120,224,58,.5); }
  50%     { box-shadow: 0 0 0 8px rgba(120,224,58,0);  }
}

/* ── Share panel ───────────────────────────────────────── */
.rmb-share-panel {
  background:    var(--navy);
  border:        1px solid var(--navy-border);
  border-radius: var(--r-lg);
  padding:       12px 14px;
  margin-top:    8px;
  animation:     rmb-fadein .22s ease-out both;
}

.rmb-share-label {
  font-size:      .67rem;
  font-weight:    700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color:          var(--text-low);
  margin-bottom:  9px;
}

.rmb-share-btns {
  display:  flex;
  flex-wrap: wrap;
  gap:      7px;
}

.rmb-share-btn {
  background:     var(--navy-light);
  border:         1px solid var(--navy-border);
  color:          var(--text);
  border-radius:  var(--r);
  font-family:    var(--sans);
  font-size:      .72rem;
  font-weight:    600;
  letter-spacing: .03em;
  padding:        7px 12px;
  cursor:         pointer;
  transition:     all var(--t);
  display:        inline-flex;
  align-items:    center;
  gap:            5px;
  white-space:    nowrap;
}

.rmb-share-btn:hover {
  border-color: var(--green-dim);
  color:        var(--green);
  background:   var(--green-glow);
}

.rmb-share-btn--success {
  background:   rgba(62,207,142,.12) !important;
  border-color: #1e4d38 !important;
  color:        var(--success) !important;
}

@media (max-width: 460px) {
  .rmb-share-btns { gap: 5px; }
  .rmb-share-btn  { font-size: .68rem; padding: 6px 10px; }
}

/* =======================================================
   Product image — replaces dimension strip on cards
   ======================================================= */

.rmb-card-img-wrap {
  width:           100%;
  height:          140px;
  background:      var(--navy-mid);
  border-bottom:   1px solid var(--navy-border);
  display:         flex;
  align-items:     center;
  justify-content: center;
  overflow:        hidden;
  transition:      background var(--t);
}

.rmb-card-link:hover .rmb-card-img-wrap {
  background: var(--navy-light);
}

.rmb-card-img {
  width:      100%;
  height:     100%;
  object-fit: contain;
  padding:    10px;
  display:    block;
  transition: transform var(--t);
}

.rmb-card-link:hover .rmb-card-img {
  transform: scale(1.04);
}

/* SVG placeholder when no image is available */
.rmb-card-img-placeholder {
  display:         flex;
  align-items:     center;
  justify-content: center;
  opacity:         .45;
  width:           100%;
  height:          100%;
}

/* Maggie favicon in message row avatars */
.rmb-row-avatar img {
  display:       block;
  width:         28px;
  height:        28px;
  border-radius: 4px;
}

/* =======================================================
   Phase 1 Features — RFQ, Compare, Pull Force
   ======================================================= */

/* ── RFQ wrap ────────────────────────────────────────── */
.rmb-rfq-wrap {
  background:    var(--navy);
  border:        1px solid var(--navy-border);
  border-radius: var(--r-lg);
  overflow:      hidden;
  margin-top:    8px;
  animation:     rmb-fadein .22s ease-out both;
}

.rmb-rfq-heading {
  background:     var(--navy-light);
  color:          var(--white);
  font-size:      .75rem;
  font-weight:    700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding:        10px 14px;
  border-bottom:  1px solid var(--navy-border);
}

.rmb-rfq-table { padding: 10px 14px; }

.rmb-rfq-row {
  display:       flex;
  gap:           12px;
  padding:       6px 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
  font-size:     .8rem;
}
.rmb-rfq-row:last-child { border-bottom: none; }

.rmb-rfq-label {
  width:        90px;
  flex-shrink:  0;
  font-weight:  700;
  color:        var(--text-mid);
  font-size:    .75rem;
}

.rmb-rfq-val { color: var(--text); flex: 1; }

.rmb-btn-rfq-submit {
  width:          100%;
  background:     var(--green);
  color:          var(--navy);
  border:         none;
  font-family:    var(--sans);
  font-size:      .8rem;
  font-weight:    800;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding:        13px;
  cursor:         pointer;
  transition:     all var(--t);
}
.rmb-btn-rfq-submit:hover    { background: #8fea50; }
.rmb-btn-rfq-submit:disabled { opacity: .5; cursor: not-allowed; }

.rmb-rfq-success {
  padding:    14px;
  background: rgba(62,207,142,.1);
  color:      var(--success);
  font-size:  .85rem;
  text-align: center;
  font-weight: 600;
}
.rmb-rfq-error {
  padding:    14px;
  background: rgba(240,82,82,.1);
  color:      var(--danger);
  font-size:  .85rem;
  text-align: center;
}

/* ── Compare card ────────────────────────────────────── */
.rmb-compare-wrap {
  background:    var(--navy);
  border:        1px solid var(--navy-border);
  border-radius: var(--r-lg);
  overflow:      hidden;
  margin-top:    8px;
  width:         100%;
  animation:     rmb-fadein .22s ease-out both;
}

.rmb-compare-header {
  background:     var(--navy-light);
  color:          var(--white);
  font-size:      .72rem;
  font-weight:    700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding:        9px 14px;
  border-bottom:  1px solid var(--navy-border);
}

.rmb-compare-grid { width: 100%; }

.rmb-compare-row {
  display:     grid;
  grid-template-columns: 1fr 1.5fr 1.5fr;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.rmb-compare-row:last-child { border-bottom: none; }

.rmb-compare-row--head {
  background: var(--navy-mid);
}

.rmb-compare-cell {
  padding:   7px 12px;
  font-size: .76rem;
  color:     var(--text);
}

.rmb-compare-cell--label {
  color:       var(--text-mid);
  font-weight: 600;
  font-size:   .7rem;
}

.rmb-compare-cell--diff {
  color:       var(--green);
  font-weight: 600;
}

.rmb-compare-row--head .rmb-compare-cell {
  font-family: var(--mono);
  font-size:   .72rem;
  font-weight: 700;
  color:       var(--green);
}

.rmb-compare-btns {
  display:    grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--navy-border);
}

.rmb-compare-btns .rmb-btn-view {
  border-radius: 0;
  border-right: 1px solid var(--navy-border);
  font-size: .7rem;
}
.rmb-compare-btns .rmb-btn-view:last-child { border-right: none; }

@media (max-width: 460px) {
  .rmb-compare-row { grid-template-columns: 80px 1fr 1fr; }
}

/* =======================================================
   Phase 3 — Proactive Chat, FAQ Mode, Recommendations
   ======================================================= */

/* ── FAQ mode tweaks ─────────────────────────────────── */
.rmb-root--faq .rmb-results-wrap,
.rmb-root--faq .rmb-share-panel,
.rmb-root--faq .rmb-compare-wrap,
.rmb-root--faq .rmb-rfq-wrap { display: none !important; }

/* ── Product recommendation widget ──────────────────── */
.rmb-recommend-wrap {
  margin:        32px 0;
  font-family:   var(--sans, 'Inter', Arial, sans-serif);
}

.rmb-recommend-header {
  display:        flex;
  align-items:    center;
  gap:            10px;
  margin-bottom:  16px;
  font-size:      1rem;
  font-weight:    700;
  color:          #0b1f3a;
  border-bottom:  2px solid #78e03a;
  padding-bottom: 10px;
}

.rmb-recommend-icon {
  width:         28px;
  height:        28px;
  border-radius: 5px;
  flex-shrink:   0;
}

.rmb-recommend-grid {
  display:               grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap:                   14px;
}

.rmb-recommend-card {
  display:        flex;
  flex-direction: column;
  background:     #0b1f3a;
  border:         1px solid #234070;
  border-radius:  8px;
  overflow:       hidden;
  text-decoration: none;
  transition:     border-color .16s, transform .16s, box-shadow .16s;
  color:          inherit;
}

.rmb-recommend-card:hover {
  border-color: #78e03a;
  transform:    translateY(-2px);
  box-shadow:   0 6px 18px rgba(0,0,0,.35);
  text-decoration: none;
}

.rmb-recommend-img-wrap {
  width:           100%;
  height:          120px;
  background:      #112444;
  display:         flex;
  align-items:     center;
  justify-content: center;
  overflow:        hidden;
  border-bottom:   1px solid #1e3a6a;
}

.rmb-recommend-img-wrap img {
  width:      100%;
  height:     100%;
  object-fit: contain;
  padding:    8px;
}

.rmb-recommend-img-placeholder {
  background: #112444;
}

.rmb-recommend-info {
  padding: 10px 12px 12px;
  flex:    1;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.rmb-recommend-sku {
  font-family:    'JetBrains Mono','Courier New',monospace;
  font-size:      .7rem;
  font-weight:    700;
  color:          #78e03a;
  letter-spacing: .04em;
}

.rmb-recommend-name {
  font-size:   .78rem;
  font-weight: 600;
  color:       #f0f4ff;
  line-height: 1.3;
  flex:        1;
}

.rmb-recommend-foot {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  margin-top:      8px;
  gap:             6px;
}

.rmb-recommend-price {
  font-size:   .82rem;
  font-weight: 700;
  color:       #f0f4ff;
}

@media (max-width: 480px) {
  .rmb-recommend-grid { grid-template-columns: repeat(2, 1fr); }
}

/* =======================================================
   Phase 4 — Wizard, Volume Pricing, Unit Toggle
   ======================================================= */

/* ── Unit toggle ─────────────────────────────────────── */
.rmb-unit-toggle {
  display:     flex;
  flex-shrink: 0;
  border:      1px solid var(--navy-border);
  border-radius: var(--r);
  overflow:    hidden;
}

.rmb-unit-btn {
  background:  var(--navy-light);
  color:       var(--text-low);
  border:      none;
  font-family: var(--mono);
  font-size:   .7rem;
  font-weight: 700;
  padding:     0 10px;
  height:      42px;
  cursor:      pointer;
  transition:  all var(--t);
  letter-spacing: .04em;
}

.rmb-unit-btn:first-child { border-right: 1px solid var(--navy-border); }

.rmb-unit-btn.active {
  background: var(--green);
  color:      var(--navy);
}

.rmb-unit-btn:hover:not(.active) {
  background: var(--navy-mid);
  color:      var(--green);
}

/* ── Wizard result card ──────────────────────────────── */
.rmb-wizard-result {
  background:    var(--navy);
  border:        1px solid var(--navy-border);
  border-radius: var(--r-lg);
  overflow:      hidden;
  margin-top:    8px;
  animation:     rmb-fadein .22s ease-out both;
}

.rmb-wizard-heading {
  background:     var(--navy-light);
  color:          var(--white);
  font-size:      .72rem;
  font-weight:    700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding:        9px 14px;
  border-bottom:  1px solid var(--navy-border);
}

.rmb-wizard-grid {
  display:               grid;
  grid-template-columns: repeat(2, 1fr);
  gap:                   1px;
  background:            var(--navy-border);
  border-bottom:         1px solid var(--navy-border);
}

.rmb-wizard-cell {
  background:  var(--navy-mid);
  padding:     14px 16px;
  text-align:  center;
}

.rmb-wizard-icon {
  font-size:     1.2rem;
  margin-bottom: 4px;
}

.rmb-wizard-label {
  font-size:      .65rem;
  font-weight:    700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color:          var(--text-low);
  margin-bottom:  4px;
}

.rmb-wizard-val {
  font-size:   .88rem;
  font-weight: 700;
  color:       var(--green);
}

/* ── Volume pricing card ─────────────────────────────── */
.rmb-volume-wrap {
  background:    var(--navy);
  border:        1px solid var(--navy-border);
  border-radius: var(--r-lg);
  overflow:      hidden;
  margin-top:    8px;
  padding-bottom: 12px;
  animation:     rmb-fadein .22s ease-out both;
}

.rmb-volume-heading {
  background:     var(--navy-light);
  color:          var(--white);
  font-size:      .72rem;
  font-weight:    700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding:        9px 14px;
  border-bottom:  1px solid var(--navy-border);
  margin-bottom:  4px;
}

.rmb-volume-table { padding: 0 12px; }

.rmb-volume-row {
  display:       grid;
  grid-template-columns: 1fr 1fr 1fr;
  border-bottom: 1px solid rgba(255,255,255,.05);
  font-size:     .8rem;
}
.rmb-volume-row:last-child { border-bottom: none; }

.rmb-volume-row--head .rmb-volume-cell {
  font-size:      .67rem;
  font-weight:    700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color:          var(--text-low);
  padding:        8px 10px 6px;
}

.rmb-volume-cell { padding: 7px 10px; color: var(--text); }

.rmb-volume-row--active {
  background:    rgba(120,224,58,.07);
  border-radius: 4px;
}

.rmb-volume-row--active .rmb-volume-cell {
  color:       var(--green);
  font-weight: 700;
}

.rmb-volume-wrap .rmb-share-btn {
  margin: 0 12px;
  width:  calc(100% - 24px);
  justify-content: center;
}

@media (max-width: 460px) {
  .rmb-wizard-grid { grid-template-columns: repeat(2, 1fr); }
}

/* =======================================================
   Closest-match fallback label + inline RFQ button
   ======================================================= */

.rmb-results-wrap--fallback { margin-top: 4px; }

.rmb-results-label--fallback {
  color:       var(--text-low);
  font-style:  italic;
  font-weight: 500;
  font-size:   .72rem;
  letter-spacing: .04em;
}

.rmb-no-results {
  padding:     14px 16px;
  font-size:   .82rem;
  color:       var(--text-mid);
  line-height: 1.5;
}

.rmb-no-results a {
  color:            var(--green);
  text-decoration:  underline;
}

.rmb-no-results-rfq {
  background:       none;
  border:           none;
  color:            var(--green);
  font-family:      var(--sans);
  font-size:        .82rem;
  font-weight:      600;
  cursor:           pointer;
  padding:          0;
  text-decoration:  underline;
  text-underline-offset: 2px;
}

.rmb-no-results-rfq:hover { color: #8fea50; }

/* =======================================================
   Email capture prompt
   ======================================================= */

.rmb-email-prompt {
  background:    var(--navy);
  border:        1px solid var(--green-dim);
  border-left:   3px solid var(--green);
  border-radius: var(--r-lg);
  padding:       14px 16px;
  margin-top:    10px;
  animation:     rmb-fadein .25s ease-out both;
  transition:    opacity .2s ease, transform .2s ease;
}

.rmb-email-prompt-text {
  font-size:     .82rem;
  font-weight:   600;
  color:         var(--white);
  margin-bottom: 10px;
}

.rmb-email-prompt-row {
  display:   flex;
  gap:       8px;
  flex-wrap: wrap;
  align-items: center;
}

.rmb-email-prompt-input {
  flex:          1;
  min-width:     160px;
  background:    var(--navy-light);
  border:        1px solid var(--navy-border);
  border-radius: var(--r);
  color:         var(--white);
  font-family:   var(--sans);
  font-size:     .82rem;
  padding:       8px 12px;
  outline:       none;
  transition:    border-color var(--t);
}

.rmb-email-prompt-input:focus { border-color: var(--green); }

.rmb-email-prompt-btn {
  background:     var(--green);
  color:          var(--navy);
  border:         none;
  border-radius:  var(--r);
  font-family:    var(--sans);
  font-size:      .78rem;
  font-weight:    800;
  padding:        8px 18px;
  cursor:         pointer;
  white-space:    nowrap;
  transition:     background var(--t);
}

.rmb-email-prompt-btn:hover    { background: #8fea50; }
.rmb-email-prompt-btn:disabled { opacity: .55; cursor: not-allowed; }

.rmb-email-prompt-skip {
  background:  none;
  border:      none;
  color:       var(--text-low);
  font-family: var(--sans);
  font-size:   .74rem;
  cursor:      pointer;
  padding:     4px 0;
  transition:  color var(--t);
}

.rmb-email-prompt-skip:hover { color: var(--text-mid); }

.rmb-email-prompt-feedback {
  margin-top: 8px;
  font-size:  .78rem;
  font-weight: 600;
  min-height: 18px;
}

@media (max-width: 460px) {
  .rmb-email-prompt-row { flex-direction: column; align-items: stretch; }
  .rmb-email-prompt-btn { width: 100%; }
}

/* =======================================================
   Session restore note
   ======================================================= */

.rmb-session-note {
  font-size:   .72rem;
  color:       var(--text-low);
  text-align:  center;
  padding:     8px 14px;
  border-top:  1px solid var(--navy-border);
  margin-top:  4px;
}

.rmb-session-clear {
  background:      none;
  border:          none;
  color:           var(--green-dim);
  font-family:     var(--sans);
  font-size:       .72rem;
  cursor:          pointer;
  padding:         0;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition:      color var(--t);
}

.rmb-session-clear:hover { color: var(--green); }

/* ═══════════════════════════════════════════════════════════════════════════
   Full-screen mode (/maggie/)
   Applied by [radial_magnet_bot fullscreen="yes"]. The widget normally sits in
   a 700px column with a fixed pixel height; here it fills its flex parent.
   ═══════════════════════════════════════════════════════════════════════════ */
.rmb-root--fullscreen {
  max-width: none;
  margin: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.rmb-root--fullscreen .rmb-header {
  flex: 0 0 auto;
  border-radius: 0;
}

/* The message list is the only thing that scrolls. */
.rmb-root--fullscreen .rmb-messages {
  flex: 1 1 auto;
  height: auto !important;
  min-height: 0;
  border-left: none;
  border-right: none;
}

.rmb-root--fullscreen .rmb-chips-row,
.rmb-root--fullscreen .rmb-input-bar {
  flex: 0 0 auto;
  border-radius: 0;
  border-left: none;
  border-right: none;
}

/* Full-screen must not mean full-bleed text — line length stays readable on a
   wide monitor by keeping content inside a centred column. Padding is used
   rather than max-width on the rows so user/bot left-right alignment survives. */
.rmb-root--fullscreen .rmb-messages,
.rmb-root--fullscreen .rmb-chips-row,
.rmb-root--fullscreen .rmb-input-bar {
  padding-left:  max(16px, calc((100% - 900px) / 2));
  padding-right: max(16px, calc((100% - 900px) / 2));
}

@media (max-width: 640px) {
  .rmb-root--fullscreen .rmb-messages,
  .rmb-root--fullscreen .rmb-chips-row,
  .rmb-root--fullscreen .rmb-input-bar {
    padding-left:  12px;
    padding-right: 12px;
  }
}
