/* ─── Customer-Configurable Variables ────────────────────────────────────────
   Override any of these in the customer's Custom.css to customize appearance.
   Example:
     .tfc-market-insights {
       --insights-accent:    #c8102e;
       --insights-send-bg:   #c8102e;
       --insights-cta-bg:    #c8102e;
     }
──────────────────────────────────────────────────────────────────────────── */
.tfc-market-insights {
  /* Typography */
  --insights-font-family:               Arial, Helvetica, sans-serif;
  --insights-font-size-base:            14px;
  --insights-font-size-sm:              13px;
  --insights-font-size-xs:              12px;
  --insights-font-size-launcher:        11px;
  --insights-font-size-close:           24px;
  --insights-font-size-send-arrow:      18px;
  --insights-line-height-assistant:     1.5;

  /* Brand / accent */
  --insights-accent:                    #0b5cab;
  --insights-accent-hover:              #094b8a;

  /* Launcher button */
  --insights-launcher-bg:               #E6E6E6;
  --insights-launcher-border:           #d5dbe3;
  --insights-launcher-color:            #000;
  --insights-launcher-shadow: 			1px 1px 0 #888;
  --insights-launcher-active-bg:        linear-gradient(#fff, #eaf2fb);
  --insights-launcher-active-border:    #b8c7d8;
  --insights-launcher-active-shadow:    0 1px 3px rgba(0,0,0,.25);
  --insights-launcher-title-height:     30px;
  --insights-launcher-right-base:       15px;   /* renamed from --insights-launcher-right */
  --insights-databutton-width:          0px;    /* set by JS when #dataButton is present */
  --insights-launcher-height:           20px;   /* changed from 24px to match data download button */
  --insights-launcher-min-width:        48px;
  --insights-launcher-padding:          2px 8px;
  --insights-launcher-border-radius:    4px;
  --insights-launcher-gap:              2px;

  /* Panel */
  --insights-panel-bg:                  #fff;
  --insights-panel-border-color:        #ddd;
  --insights-panel-radius:              16px;
  --insights-panel-shadow:              0 10px 30px rgba(0,0,0,.18);
  --insights-panel-width:               380px;
  --insights-panel-max-height:          600px;
  --insights-panel-right-closed:        -420px;
  --insights-panel-right-open:          14px;
  --insights-panel-bottom:              14px;
  --insights-panel-z-index:             1001;
  --insights-panel-transition:          right 0.25s ease, bottom 0.25s ease;

  /* Header */
  --insights-header-padding:            16px;
  --insights-header-border:             #e5e5e5;

  /* Body */
  --insights-body-bg:                   #fafafa;
  --insights-body-padding:              16px;

  /* Footer */
  --insights-footer-bg:                 #fff;
  --insights-footer-border:             #e5e5e5;
  --insights-footer-padding:            12px;

  /* Messages */
  --insights-msg-radius:                10px;
  --insights-msg-padding:               10px 12px;
  --insights-msg-margin-bottom:         12px;
  --insights-msg-max-width:             96%;
  --insights-user-msg-bg:               #dcecff;
  --insights-assistant-msg-bg:          #fff;
  --insights-assistant-msg-border:      #e3e3e3;

  /* Input */
  --insights-input-padding:             12px 52px 12px 14px;
  --insights-input-border:              #cfcfcf;
  --insights-input-border-focus:        #999;
  --insights-input-radius:              999px;

  /* Send button */
  --insights-send-bg:                   #000;
  --insights-send-bg-hover:             #222;
  --insights-send-color:                #fff;
  --insights-send-size:                 34px;
  --insights-send-right:                8px;

  /* Prompt cards */
  --insights-prompts-border:            #eee;
  --insights-prompts-margin-bottom:     14px;
  --insights-prompts-padding-bottom:    6px;
  --insights-prompt-title-color:        #555;
  --insights-prompt-title-margin:       8px;
  --insights-prompt-list-gap:           8px;
  --insights-prompt-border:             #d8dde3;
  --insights-prompt-bg:                 #fff;
  --insights-prompt-bg-hover:           #f7f9fb;
  --insights-prompt-color:              #222;
  --insights-prompt-radius:             12px;
  --insights-prompt-padding:            10px 12px;

  /* Table */
  --insights-table-font-size:           12px;
  --insights-table-border:              #d9d9d9;
  --insights-table-header-bg:           #f3f4f6;
  --insights-table-bg:                  #fff;
  --insights-table-cell-padding:        6px 8px;
  --insights-table-margin-top:          10px;

  /* CTA button */
  --insights-cta-bg:                    #0b5cab;
  --insights-cta-bg-hover:              #094b8a;
  --insights-cta-color:                 #fff;
  --insights-cta-radius:                999px;
  --insights-cta-padding:               11px 14px;
  --insights-cta-margin-top:            12px;

  /* Lead form */
  --insights-form-border:               #ddd;
  --insights-form-radius:               12px;
  --insights-form-bg:                   #fff;
  --insights-form-padding:              12px;
  --insights-form-margin-top:           12px;
  --insights-form-input-padding:        9px 10px;
  --insights-form-label-margin-top:     10px;
  --insights-form-submit-padding:       10px 14px;
  --insights-form-submit-margin-top:    12px;
  --insights-form-status-margin-top:    10px;
  --insights-back-color:                #0b5cab;
  --insights-form-input-radius:         4px;

  /* Typing dots */
  --insights-dot-color:                 #999;
  --insights-dot-size:                  6px;
  --insights-dot-gap:                   4px;

  /* Mobile overrides */
  --insights-mobile-launcher-padding:   2px 6px;
  --insights-mobile-launcher-font-size: 10px;
  --insights-mobile-sparkle-margin:     3px;
  --insights-mobile-panel-max-width:    360px;
  --insights-mobile-panel-height:       52vh;
  --insights-mobile-panel-open-bottom:  76px;
  --insights-mobile-header-padding:     12px 14px;
  --insights-mobile-body-padding:       12px;
  --insights-mobile-footer-padding:     10px;
  --insights-mobile-msg-max-width:      94%;
  --insights-mobile-msg-font-size:      13px;
  --insights-mobile-prompt-font-size:   12px;
  --insights-mobile-prompt-padding:     9px 10px;
}


/* ─── Layout ─────────────────────────────────────────────────────────────── */
.tfc-market-insights {
  position: relative;
}

.tfc-insights-launcher-container {
  transition: opacity 1.2s ease !important;
  will-change: opacity;
  transform: translateZ(0);
  position: absolute;
  top: 0;
  right: calc(var(--insights-launcher-right-base) + var(--insights-databutton-width));
  height: var(--insights-launcher-title-height);
  min-height: var(--insights-launcher-height); 
  display: flex;
  align-items: center;
}

/* ─── Launcher Button ────────────────────────────────────────────────────── */

.tfc-insights-launcher {
  transition: opacity 0.8s ease-in-out;
  min-width: var(--insights-launcher-min-width);
  height: var(--insights-launcher-height);
  padding: var(--insights-launcher-padding);
  border: 1px solid var(--insights-launcher-border);
  border-radius: var(--insights-launcher-border-radius);
  background: var(--insights-launcher-bg);
  color: var(--insights-launcher-color);
  box-shadow: var(--insights-launcher-shadow);
  font-family: var(--insights-font-family);
  font-size: var(--insights-font-size-launcher);
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: var(--insights-launcher-gap);
  cursor: pointer;
}

.tfc-insights-launcher:hover,
.tfc-insights-launcher.active {
  background: var(--insights-launcher-active-bg);
  border-color: var(--insights-launcher-active-border);
  box-shadow: var(--insights-launcher-active-shadow);
}

.tfc-insights-sparkle {
  color: var(--insights-accent);
}

.insights-text-short {
  display: none;
}

/* ─── Panel — reset widget inheritance ───────────────────────────────────── */

.insights-panel,
.insights-panel * {
  font-family: var(--insights-font-family);
  color: var(--insights-prompt-color);
  letter-spacing: normal;
  text-transform: none;
  line-height: normal;
  text-align: left;
}


/* ─── Panel ──────────────────────────────────────────────────────────────── */

.insights-panel {
  position: fixed;
  bottom: var(--insights-panel-bottom);
  right: var(--insights-panel-right-closed);
  font-size: var(--insights-font-size-base);
  width: var(--insights-panel-width);
  max-width: calc(100% - 28px);
  height: 50%;
  max-height: var(--insights-panel-max-height);
  background: var(--insights-panel-bg);
  border: 1px solid var(--insights-panel-border-color);
  border-radius: var(--insights-panel-radius);
  box-shadow: var(--insights-panel-shadow);
  transition: var(--insights-panel-transition);
  z-index: var(--insights-panel-z-index);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.insights-panel.open {
  right: var(--insights-panel-right-open);
}

.insights-no-transition .insights-panel {
  transition: none !important;
}


/* ─── Header ─────────────────────────────────────────────────────────────── */

.insights-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--insights-header-padding);
  border-bottom: 1px solid var(--insights-header-border);
  font-weight: 700;
}

.insights-close {
  background: none;
  border: 0;
  font-size: var(--insights-font-size-close);
  cursor: pointer;
  line-height: 1;
}


/* ─── Body ───────────────────────────────────────────────────────────────── */

.insights-body {
  flex: 1;
  overflow-y: auto;
  padding: var(--insights-body-padding);
  background: var(--insights-body-bg);
}


/* ─── Messages ───────────────────────────────────────────────────────────── */

.insights-message {
  margin-bottom: var(--insights-msg-margin-bottom);
  padding: var(--insights-msg-padding);
  border-radius: var(--insights-msg-radius);
  max-width: var(--insights-msg-max-width);
  white-space: pre-wrap;
  font-size: var(--insights-font-size-base);
}

.insights-message.user {
  margin-left: auto;
  background: var(--insights-user-msg-bg);
}

.insights-message.assistant {
  margin-right: auto;
  background: var(--insights-assistant-msg-bg);
  border: 1px solid var(--insights-assistant-msg-border);
  line-height: var(--insights-line-height-assistant);
}


/* ─── Footer / Input ─────────────────────────────────────────────────────── */

.insights-footer {
  border-top: 1px solid var(--insights-footer-border);
  padding: var(--insights-footer-padding);
  background: var(--insights-footer-bg);
}

.insights-row.chat-input-wrap {
  position: relative;
  display: block;
}

.insights-disclaimer {
  font-size: 10px;
  line-height: 1.3;
  text-align: center;
  color: #888;
  padding: 6px 4px 0;
  margin: 0;
}

/* Disclaimer link — protection block (host pages style `a` aggressively) */
#insightsPanel .insights-disclaimer a.insights-disclaimer-link,
#insightsPanel .insights-disclaimer a.insights-disclaimer-link:link,
#insightsPanel .insights-disclaimer a.insights-disclaimer-link:visited,
#insightsPanel .lead-privacy a.insights-disclaimer-link,
#insightsPanel .lead-privacy a.insights-disclaimer-link:link,
#insightsPanel .lead-privacy a.insights-disclaimer-link:visited {
  color: #888 !important;
  background: none !important;
  text-decoration: underline !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  font-family: inherit !important;
  border: none !important;
  padding: 0 !important;
  display: inline !important;
  opacity: 1 !important;
}

#insightsPanel .insights-disclaimer a.insights-disclaimer-link:hover,
#insightsPanel .insights-disclaimer a.insights-disclaimer-link:focus,
#insightsPanel .insights-disclaimer a.insights-disclaimer-link:active,
#insightsPanel .lead-privacy a.insights-disclaimer-link:hover,
#insightsPanel .lead-privacy a.insights-disclaimer-link:focus,
#insightsPanel .lead-privacy a.insights-disclaimer-link:active {
  color: #666 !important;
  text-decoration: underline !important;
}

.lead-privacy {
  font-size: 10px;
  line-height: 1.3;
  color: #888;
  margin-top: 14px;
  margin-bottom: 2px;
}

.insights-input {
  width: 100%;
  box-sizing: border-box;
  padding: var(--insights-input-padding);
  font-size: var(--insights-font-size-base);
  border: 1px solid var(--insights-input-border);
  border-radius: var(--insights-input-radius);
  outline: none;
  color: var(--insights-prompt-color);
  background: var(--insights-panel-bg);
}

.insights-input:focus {
  border-color: var(--insights-input-border-focus);
}

.insights-send {
  position: absolute;
  right: var(--insights-send-right);
  top: 50%;
  transform: translateY(-50%);
  width: var(--insights-send-size);
  height: var(--insights-send-size);
  border: 0;
  border-radius: 50%;
  background: var(--insights-send-bg);
  color: var(--insights-send-color);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.insights-send:hover {
  background: var(--insights-send-bg-hover);
}

.insights-send:active {
  transform: translateY(-50%) scale(0.96);
}

.send-arrow {
  font-size: var(--insights-font-size-send-arrow);
  line-height: 1;
  margin-top: -1px;
  color: var(--insights-send-color);
}


/* ─── Prompt Cards ───────────────────────────────────────────────────────── */

.insights-prompts {
  display: none;
  margin-bottom: var(--insights-prompts-margin-bottom);
  padding-bottom: var(--insights-prompts-padding-bottom);
  border-bottom: 1px solid var(--insights-prompts-border);
}

.insights-prompts.visible {
  display: block;
}

.insights-prompts-title {
  font-size: var(--insights-font-size-sm);
  font-weight: 700;
  color: var(--insights-prompt-title-color);
  margin-bottom: var(--insights-prompt-title-margin);
  text-transform: none;
  letter-spacing: normal;
}

.insights-prompt-list {
  display: flex;
  flex-direction: column;
  gap: var(--insights-prompt-list-gap);
}

.insights-prompt-card {
  width: 100%;
  text-align: left;
  border: 1px solid var(--insights-prompt-border);
  background: var(--insights-prompt-bg);
  border-radius: var(--insights-prompt-radius);
  padding: var(--insights-prompt-padding);
  font-size: var(--insights-font-size-sm);
  color: var(--insights-prompt-color);
  cursor: pointer;
}

.insights-prompt-card:hover {
  background: var(--insights-prompt-bg-hover);
}


/* ─── Table ──────────────────────────────────────────────────────────────── */

.insights-table-wrap {
  margin-top: var(--insights-table-margin-top);
  overflow-x: auto;
}

.insights-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--insights-table-font-size);
  background: var(--insights-table-bg);
}

.insights-table th,
.insights-table td {
  border: 1px solid var(--insights-table-border);
  padding: var(--insights-table-cell-padding);
  text-align: left;
  white-space: nowrap;
}

.insights-table th {
  background: var(--insights-table-header-bg);
  font-weight: 700;
}


/* ─── CTA / Contact Card ─────────────────────────────────────────────────── */

.contact-card {
  display: none;
  margin-top: var(--insights-cta-margin-top);
}

.contact-card.visible {
  display: block;
}

.cta-prompt {
  display: none;
  margin-top: var(--insights-cta-margin-top);
}

.cta-prompt.visible {
  display: block;
}

.cta-button {
  width: 100%;
  box-sizing: border-box;
  padding: var(--insights-cta-padding);
  border: 0;
  border-radius: var(--insights-cta-radius);
  background: var(--insights-cta-bg);
  color: var(--insights-cta-color);
  font-size: var(--insights-font-size-base);
  font-weight: 700;
  cursor: pointer;
}

.cta-button:hover {
  background: var(--insights-cta-bg-hover);
}


/* ─── Lead Form ──────────────────────────────────────────────────────────── */

.lead-form {
  display: none;
  margin-top: var(--insights-form-margin-top);
  padding: var(--insights-form-padding);
  border: 1px solid var(--insights-form-border);
  border-radius: var(--insights-form-radius);
  background: var(--insights-form-bg);
}

.lead-form.visible {
  display: block;
}

.lead-form label {
  display: block;
  margin-top: var(--insights-form-label-margin-top);
  font-size: var(--insights-font-size-sm);
  font-weight: 700;
  color: var(--insights-prompt-color);
}

.lead-form textarea {
  width: 100%;
  box-sizing: border-box;
  margin-top: 4px;
  padding: var(--insights-form-input-padding);
  font-size: var(--insights-font-size-base);
  color: var(--insights-prompt-color);
  background: var(--insights-panel-bg);
  resize: vertical;
  min-height: 72px;
  line-height: 1.4;
  border: 1px solid var(--insights-form-border);
  border-radius: var(--insights-form-input-radius);
}

.lead-form input {
  width: 100%;
  box-sizing: border-box;
  margin-top: 4px;
  padding: var(--insights-form-input-padding);
  font-size: var(--insights-font-size-base);
  color: var(--insights-prompt-color);
  background: var(--insights-panel-bg);
  border: 1px solid var(--insights-form-border);
  border-radius: var(--insights-form-input-radius);
}

.lead-submit {
  margin-top: var(--insights-form-submit-margin-top);
  padding: var(--insights-form-submit-padding);
  cursor: pointer;
}

.lead-status {
  margin-top: var(--insights-form-status-margin-top);
  font-size: var(--insights-font-size-base);
  font-weight: 700;
}

.lead-form-actions {
  display: flex;
  justify-content: flex-end;
  margin-bottom: var(--insights-prompt-title-margin);
}

.lead-back {
  background: none;
  border: 0;
  color: var(--insights-back-color);
  cursor: pointer;
  font-size: var(--insights-font-size-sm);
  font-weight: 700;
  padding: 0;
}

.lead-back:hover {
  text-decoration: underline;
}


/* ─── Typing Dots ────────────────────────────────────────────────────────── */

.typing-dots {
  display: inline-flex;
  gap: var(--insights-dot-gap);
  align-items: center;
}

.typing-dots span {
  width: var(--insights-dot-size);
  height: var(--insights-dot-size);
  background: var(--insights-dot-color);
  border-radius: 50%;
  animation: typingDot 1s infinite ease-in-out;
}

.typing-dots span:nth-child(2) { animation-delay: 0.15s; }
.typing-dots span:nth-child(3) { animation-delay: 0.30s; }

@keyframes typingDot {
  0%, 80%, 100% {
    opacity: 0.35;
    transform: translateY(0);
  }
  40% {
    opacity: 1;
    transform: translateY(-3px);
  }
}


/* ─── Mobile ─────────────────────────────────────────────────────────────── */


/* Launcher text: switch to the short label when space is limited.
   Separate from the 425px mobile-layout block so the panel layout doesn't move. */
@media (max-width: 600px) {
  .insights-text-full {
    display: none;
  }

  .insights-text-short {
    display: inline;
  }
}

@media (max-width: 425px) {


  .tfc-insights-launcher {
    padding: var(--insights-mobile-launcher-padding);
    font-size: var(--insights-mobile-launcher-font-size);
  }

  .tfc-insights-sparkle {
    margin-right: var(--insights-mobile-sparkle-margin);
  }

  .insights-panel {
    left: 50%;
    transform: translateX(-50%);
    right: auto;
    bottom: -70vh;
    width: calc(100% - 20px);
    max-width: var(--insights-mobile-panel-max-width);
    height: var(--insights-mobile-panel-height);
    border-radius: var(--insights-panel-radius);
    transition: bottom 0.25s ease, height 0.2s ease;
  }

  .insights-panel.open {
    bottom: var(--insights-mobile-panel-open-bottom);
  }

  html, body {
    overflow-x: hidden;
  }

  .insights-header {
    padding: var(--insights-mobile-header-padding);
  }
 

  .insights-body {
    padding: var(--insights-mobile-body-padding);
  }

  .insights-footer {
    padding: var(--insights-mobile-footer-padding);
    padding-bottom: calc(var(--insights-mobile-footer-padding) + env(safe-area-inset-bottom));
  }

  .insights-message {
    max-width: var(--insights-mobile-msg-max-width);
    font-size: var(--insights-mobile-msg-font-size);
  }

  .insights-prompt-card {
    font-size: var(--insights-mobile-prompt-font-size);
    padding: var(--insights-mobile-prompt-padding);
  }
}

/* ─── Host page / theme button protection ──────────────────────────────────
   Protect Insights buttons from customer site CSS such as Elementor's
   `.elementor-kit-* button` rules.
──────────────────────────────────────────────────────────────────────────── */

/* Launcher */
.tfc-market-insights button.tfc-insights-launcher {
  height: var(--insights-launcher-height) !important;
  min-width: var(--insights-launcher-min-width) !important;
  padding: var(--insights-launcher-padding) !important;
  border: 1px solid var(--insights-launcher-border) !important;
  border-radius: var(--insights-launcher-border-radius) !important;
  background: var(--insights-launcher-bg) !important;
  color: var(--insights-launcher-color) !important;
  box-shadow: var(--insights-launcher-shadow) !important;
  font-family: var(--insights-font-family) !important;
  font-size: var(--insights-font-size-launcher) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-transform: none !important;
}

.tfc-market-insights button.tfc-insights-launcher:hover,
.tfc-market-insights button.tfc-insights-launcher.active {
  background:   var(--insights-launcher-active-bg) !important;
  border-color: var(--insights-launcher-active-border) !important;
  box-shadow:   var(--insights-launcher-active-shadow) !important;
  animation:    none !important; /* stops any running animation on hover */
}

/* Button animation */
@keyframes tfcStarPulse {
  0%   { opacity: 1;   }
  15%  { opacity: 0.25; }
  40%  { opacity: 1;   }
  100% { opacity: 1;   }  
}

.tfc-insights-sparkle {
  display: inline-block;
  position: relative;
  animation: tfcStarPulse 5s ease-in-out infinite;
  order: -1;     
}

.tfc-market-insights button.tfc-insights-launcher:hover .tfc-insights-sparkle {
  animation: none;
  opacity: 1;
}

/* Shared panel button reset */
.insights-panel button.insights-close,
.insights-panel button.insights-prompt-card,
.insights-panel button.insights-send,
.insights-panel button.cta-button,
.insights-panel button.lead-submit,
.insights-panel button.lead-back {
  font-family: var(--insights-font-family) !important;
  text-transform: none !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

/* Close */
.insights-panel button.insights-close {
  background: none !important;
  border: 0 !important;
  color: var(--insights-prompt-color) !important;
  font-size: var(--insights-font-size-close) !important;
  line-height: 1 !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

  .insights-header-sparkle {
  color: var(--insights-accent);
  margin-right: 6px;
}

/* Prompt cards */
.insights-panel button.insights-prompt-card,
.insights-panel .insights-prompt-card {
  display: block !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;

  text-align: left !important;
  border: 1px solid var(--insights-prompt-border) !important;
  background: var(--insights-prompt-bg) !important;
  border-radius: var(--insights-prompt-radius) !important;
  padding: var(--insights-prompt-padding) !important;

  font-family: var(--insights-font-family) !important;
  font-size: var(--insights-font-size-sm) !important;
  font-weight: 300 !important;
  line-height: 1.35 !important;
  color: var(--insights-prompt-color) !important;
  text-transform: none !important;

  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;

  box-shadow: none !important;
  cursor: pointer !important;
}

/* Send */
.insights-panel button.insights-send {
  width: var(--insights-send-size) !important;
  height: var(--insights-send-size) !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: var(--insights-send-bg) !important;
  color: var(--insights-send-color) !important;
  padding: 0 !important;
}

/* CTA */
.insights-panel button.cta-button {
  padding: var(--insights-cta-padding) !important;
  border: 0 !important;
  border-radius: var(--insights-cta-radius) !important;
  background: var(--insights-cta-bg) !important;
  color: var(--insights-cta-color) !important;
  font-size: var(--insights-font-size-base) !important;
  font-weight: 700 !important;
}

/* Lead submit */
.insights-panel button.lead-submit {
  margin-top: var(--insights-form-submit-margin-top) !important;
  padding: var(--insights-form-submit-padding) !important;
  border: 0 !important;
  border-radius: var(--insights-cta-radius) !important;
  background: var(--insights-cta-bg) !important;
  color: var(--insights-cta-color) !important;
  font-size: var(--insights-font-size-base) !important;
  font-weight: 700 !important;
}

/* Input */
.insights-panel input.insights-input {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;

  padding: var(--insights-input-padding) !important;
  border: 1px solid var(--insights-input-border) !important;
  border-radius: var(--insights-input-radius) !important;
  outline: none !important;

  font-family: var(--insights-font-family) !important;
  font-size: var(--insights-font-size-base) !important;
  line-height: normal !important;
  color: var(--insights-prompt-color) !important;
  background: var(--insights-panel-bg) !important;

  box-shadow: none !important;
  text-transform: none !important;
}

.insights-panel input.insights-input:focus {
  border-color: var(--insights-input-border-focus) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Host theme placeholder color */
.insights-panel input.insights-input::placeholder {
  color: #757575 !important;
  opacity: 1 !important;
}

/* Contain panel width */
.insights-panel,
.insights-body,
.insights-prompts,
.insights-prompt-list {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.insights-body {
  overflow-x: hidden !important;
}

/* Lead form inputs */
.insights-panel .lead-form input,
.insights-panel .lead-form textarea,
.insights-panel .lead-form input:focus,
.insights-panel .lead-form textarea:focus,
.insights-panel .lead-form input:-webkit-autofill,
.insights-panel .lead-form textarea:-webkit-autofill {
  border-radius: var(--insights-form-input-radius) !important;
}

/* ─── Host theme table protection ──────────────────────────────────────────
   Customer themes may restyle bare tbody/tr (display:block, borders, padding)
   and inject decorative ::after glyphs. Restore native table semantics.
─────────────────────────────────────────────────────────────────────────── */

.insights-panel .insights-table tbody {
  display: table-row-group !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

.insights-panel .insights-table thead {
  display: table-header-group !important;
}

.insights-panel .insights-table tr {
  display: table-row !important;
  padding: 0 !important;
  margin: 0 !important;
}

.insights-panel .insights-table tr::before,
.insights-panel .insights-table tr::after {
  content: none !important;
  display: none !important;
}

/* ─── Customer-Configurable Variables ────────────────────────────────────────
   Override any of these in the customer's Custom.css to customize appearance.
   Example:
     .tfc-market-insights {
       --insights-accent:    #c8102e;
       --insights-send-bg:   #c8102e;
       --insights-cta-bg:    #c8102e;
     }
──────────────────────────────────────────────────────────────────────────── */
.tfc-market-insights {
  /* Typography */
  --insights-font-family:               Arial, Helvetica, sans-serif;
  --insights-font-size-base:            14px;
  --insights-font-size-sm:              13px;
  --insights-font-size-xs:              12px;
  --insights-font-size-launcher:        11px;
  --insights-font-size-close:           24px;
  --insights-font-size-send-arrow:      18px;
  --insights-line-height-assistant:     1.5;

  /* Brand / accent */
  --insights-accent:                    #0b5cab;
  --insights-accent-hover:              #094b8a;

  /* Launcher button */
  --insights-launcher-bg:               #E6E6E6;
  --insights-launcher-border:           #d5dbe3;
  --insights-launcher-color:            #000;
  --insights-launcher-shadow: 			1px 1px 0 #888;
  --insights-launcher-active-bg:        linear-gradient(#fff, #eaf2fb);
  --insights-launcher-active-border:    #b8c7d8;
  --insights-launcher-active-shadow:    0 1px 3px rgba(0,0,0,.25);
  --insights-launcher-title-height:     30px;
  --insights-launcher-right-base:       15px;   /* renamed from --insights-launcher-right */
  --insights-databutton-width:          0px;    /* set by JS when #dataButton is present */
  --insights-launcher-height:           20px;   /* changed from 24px to match data download button */
  --insights-launcher-min-width:        48px;
  --insights-launcher-padding:          2px 8px;
  --insights-launcher-border-radius:    4px;
  --insights-launcher-gap:              2px;

  /* Panel */
  --insights-panel-bg:                  #fff;
  --insights-panel-border-color:        #ddd;
  --insights-panel-radius:              16px;
  --insights-panel-shadow:              0 10px 30px rgba(0,0,0,.18);
  --insights-panel-width:               380px;
  --insights-panel-max-height:          600px;
  --insights-panel-right-closed:        -420px;
  --insights-panel-right-open:          14px;
  --insights-panel-bottom:              14px;
  --insights-panel-z-index:             1001;
  --insights-panel-transition:          right 0.25s ease, bottom 0.25s ease;

  /* Header */
  --insights-header-padding:            16px;
  --insights-header-border:             #e5e5e5;

  /* Body */
  --insights-body-bg:                   #fafafa;
  --insights-body-padding:              16px;

  /* Footer */
  --insights-footer-bg:                 #fff;
  --insights-footer-border:             #e5e5e5;
  --insights-footer-padding:            12px;

  /* Messages */
  --insights-msg-radius:                10px;
  --insights-msg-padding:               10px 12px;
  --insights-msg-margin-bottom:         12px;
  --insights-msg-max-width:             96%;
  --insights-user-msg-bg:               #dcecff;
  --insights-assistant-msg-bg:          #fff;
  --insights-assistant-msg-border:      #e3e3e3;

  /* Input */
  --insights-input-padding:             12px 52px 12px 14px;
  --insights-input-border:              #cfcfcf;
  --insights-input-border-focus:        #999;
  --insights-input-radius:              999px;

  /* Send button */
  --insights-send-bg:                   #000;
  --insights-send-bg-hover:             #222;
  --insights-send-color:                #fff;
  --insights-send-size:                 34px;
  --insights-send-right:                8px;

  /* Prompt cards */
  --insights-prompts-border:            #eee;
  --insights-prompts-margin-bottom:     14px;
  --insights-prompts-padding-bottom:    6px;
  --insights-prompt-title-color:        #555;
  --insights-prompt-title-margin:       8px;
  --insights-prompt-list-gap:           8px;
  --insights-prompt-border:             #d8dde3;
  --insights-prompt-bg:                 #fff;
  --insights-prompt-bg-hover:           #f7f9fb;
  --insights-prompt-color:              #222;
  --insights-prompt-radius:             12px;
  --insights-prompt-padding:            10px 12px;

  /* Table */
  --insights-table-font-size:           12px;
  --insights-table-border:              #d9d9d9;
  --insights-table-header-bg:           #f3f4f6;
  --insights-table-bg:                  #fff;
  --insights-table-cell-padding:        6px 8px;
  --insights-table-margin-top:          10px;

  /* CTA button */
  --insights-cta-bg:                    #0b5cab;
  --insights-cta-bg-hover:              #094b8a;
  --insights-cta-color:                 #fff;
  --insights-cta-radius:                999px;
  --insights-cta-padding:               11px 14px;
  --insights-cta-margin-top:            12px;

  /* Lead form */
  --insights-form-border:               #ddd;
  --insights-form-radius:               12px;
  --insights-form-bg:                   #fff;
  --insights-form-padding:              12px;
  --insights-form-margin-top:           12px;
  --insights-form-input-padding:        9px 10px;
  --insights-form-label-margin-top:     10px;
  --insights-form-submit-padding:       10px 14px;
  --insights-form-submit-margin-top:    12px;
  --insights-form-status-margin-top:    10px;
  --insights-back-color:                #0b5cab;
  --insights-form-input-radius:         4px;

  /* Typing dots */
  --insights-dot-color:                 #999;
  --insights-dot-size:                  6px;
  --insights-dot-gap:                   4px;

  /* Mobile overrides */
  --insights-mobile-launcher-padding:   2px 6px;
  --insights-mobile-launcher-font-size: 10px;
  --insights-mobile-sparkle-margin:     3px;
  --insights-mobile-panel-max-width:    360px;
  --insights-mobile-panel-height:       52vh;
  --insights-mobile-panel-open-bottom:  76px;
  --insights-mobile-header-padding:     12px 14px;
  --insights-mobile-body-padding:       12px;
  --insights-mobile-footer-padding:     10px;
  --insights-mobile-msg-max-width:      94%;
  --insights-mobile-msg-font-size:      13px;
  --insights-mobile-prompt-font-size:   12px;
  --insights-mobile-prompt-padding:     9px 10px;
}


/* ─── Layout ─────────────────────────────────────────────────────────────── */
.tfc-market-insights {
  position: relative;
}

.tfc-insights-launcher-container {
  transition: opacity 1.2s ease !important;
  will-change: opacity;
  transform: translateZ(0);
  position: absolute;
  top: 0;
  right: calc(var(--insights-launcher-right-base) + var(--insights-databutton-width));
  height: var(--insights-launcher-title-height);
  min-height: var(--insights-launcher-height); 
  display: flex;
  align-items: center;
}

/* ─── Launcher Button ────────────────────────────────────────────────────── */

.tfc-insights-launcher {
  transition: opacity 0.8s ease-in-out;
  min-width: var(--insights-launcher-min-width);
  height: var(--insights-launcher-height);
  padding: var(--insights-launcher-padding);
  border: 1px solid var(--insights-launcher-border);
  border-radius: var(--insights-launcher-border-radius);
  background: var(--insights-launcher-bg);
  color: var(--insights-launcher-color);
  box-shadow: var(--insights-launcher-shadow);
  font-family: var(--insights-font-family);
  font-size: var(--insights-font-size-launcher);
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: var(--insights-launcher-gap);
  cursor: pointer;
}

.tfc-insights-launcher:hover,
.tfc-insights-launcher.active {
  background: var(--insights-launcher-active-bg);
  border-color: var(--insights-launcher-active-border);
  box-shadow: var(--insights-launcher-active-shadow);
}

.tfc-insights-sparkle {
  color: var(--insights-accent);
}

.insights-text-short {
  display: none;
}

/* ─── Panel — reset widget inheritance ───────────────────────────────────── */

.insights-panel,
.insights-panel * {
  font-family: var(--insights-font-family);
  color: var(--insights-prompt-color);
  letter-spacing: normal;
  text-transform: none;
  line-height: normal;
  text-align: left;
}


/* ─── Panel ──────────────────────────────────────────────────────────────── */

.insights-panel {
  position: fixed;
  bottom: var(--insights-panel-bottom);
  right: var(--insights-panel-right-closed);
  font-size: var(--insights-font-size-base);
  width: var(--insights-panel-width);
  max-width: calc(100% - 28px);
  height: 50%;
  max-height: var(--insights-panel-max-height);
  background: var(--insights-panel-bg);
  border: 1px solid var(--insights-panel-border-color);
  border-radius: var(--insights-panel-radius);
  box-shadow: var(--insights-panel-shadow);
  transition: var(--insights-panel-transition);
  z-index: var(--insights-panel-z-index);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.insights-panel.open {
  right: var(--insights-panel-right-open);
}

.insights-no-transition .insights-panel {
  transition: none !important;
}


/* ─── Header ─────────────────────────────────────────────────────────────── */

.insights-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--insights-header-padding);
  border-bottom: 1px solid var(--insights-header-border);
  font-weight: 700;
}

.insights-close {
  background: none;
  border: 0;
  font-size: var(--insights-font-size-close);
  cursor: pointer;
  line-height: 1;
}


/* ─── Body ───────────────────────────────────────────────────────────────── */

.insights-body {
  flex: 1;
  overflow-y: auto;
  padding: var(--insights-body-padding);
  background: var(--insights-body-bg);
}


/* ─── Messages ───────────────────────────────────────────────────────────── */

.insights-message {
  margin-bottom: var(--insights-msg-margin-bottom);
  padding: var(--insights-msg-padding);
  border-radius: var(--insights-msg-radius);
  max-width: var(--insights-msg-max-width);
  white-space: pre-wrap;
  font-size: var(--insights-font-size-base);
}

.insights-message.user {
  margin-left: auto;
  background: var(--insights-user-msg-bg);
}

.insights-message.assistant {
  margin-right: auto;
  background: var(--insights-assistant-msg-bg);
  border: 1px solid var(--insights-assistant-msg-border);
  line-height: var(--insights-line-height-assistant);
}


/* ─── Footer / Input ─────────────────────────────────────────────────────── */

.insights-footer {
  border-top: 1px solid var(--insights-footer-border);
  padding: var(--insights-footer-padding);
  background: var(--insights-footer-bg);
}

.insights-row.chat-input-wrap {
  position: relative;
  display: block;
}

.insights-disclaimer {
  font-size: 10px;
  line-height: 1.3;
  text-align: center;
  color: #888;
  padding: 6px 4px 0;
  margin: 0;
}

/* Disclaimer link — protection block (host pages style `a` aggressively) */
#insightsPanel .insights-disclaimer a.insights-disclaimer-link,
#insightsPanel .insights-disclaimer a.insights-disclaimer-link:link,
#insightsPanel .insights-disclaimer a.insights-disclaimer-link:visited,
#insightsPanel .lead-privacy a.insights-disclaimer-link,
#insightsPanel .lead-privacy a.insights-disclaimer-link:link,
#insightsPanel .lead-privacy a.insights-disclaimer-link:visited {
  color: #888 !important;
  background: none !important;
  text-decoration: underline !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  font-family: inherit !important;
  border: none !important;
  padding: 0 !important;
  display: inline !important;
  opacity: 1 !important;
}

#insightsPanel .insights-disclaimer a.insights-disclaimer-link:hover,
#insightsPanel .insights-disclaimer a.insights-disclaimer-link:focus,
#insightsPanel .insights-disclaimer a.insights-disclaimer-link:active,
#insightsPanel .lead-privacy a.insights-disclaimer-link:hover,
#insightsPanel .lead-privacy a.insights-disclaimer-link:focus,
#insightsPanel .lead-privacy a.insights-disclaimer-link:active {
  color: #666 !important;
  text-decoration: underline !important;
}

.lead-privacy {
  font-size: 10px;
  line-height: 1.3;
  color: #888;
  margin-top: 14px;
  margin-bottom: 2px;
}

.insights-input {
  width: 100%;
  box-sizing: border-box;
  padding: var(--insights-input-padding);
  font-size: var(--insights-font-size-base);
  border: 1px solid var(--insights-input-border);
  border-radius: var(--insights-input-radius);
  outline: none;
  color: var(--insights-prompt-color);
  background: var(--insights-panel-bg);
}

.insights-input:focus {
  border-color: var(--insights-input-border-focus);
}

.insights-send {
  position: absolute;
  right: var(--insights-send-right);
  top: 50%;
  transform: translateY(-50%);
  width: var(--insights-send-size);
  height: var(--insights-send-size);
  border: 0;
  border-radius: 50%;
  background: var(--insights-send-bg);
  color: var(--insights-send-color);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.insights-send:hover {
  background: var(--insights-send-bg-hover);
}

.insights-send:active {
  transform: translateY(-50%) scale(0.96);
}

.send-arrow {
  font-size: var(--insights-font-size-send-arrow);
  line-height: 1;
  margin-top: -1px;
  color: var(--insights-send-color);
}


/* ─── Prompt Cards ───────────────────────────────────────────────────────── */

.insights-prompts {
  display: none;
  margin-bottom: var(--insights-prompts-margin-bottom);
  padding-bottom: var(--insights-prompts-padding-bottom);
  border-bottom: 1px solid var(--insights-prompts-border);
}

.insights-prompts.visible {
  display: block;
}

.insights-prompts-title {
  font-size: var(--insights-font-size-sm);
  font-weight: 700;
  color: var(--insights-prompt-title-color);
  margin-bottom: var(--insights-prompt-title-margin);
  text-transform: none;
  letter-spacing: normal;
}

.insights-prompt-list {
  display: flex;
  flex-direction: column;
  gap: var(--insights-prompt-list-gap);
}

.insights-prompt-card {
  width: 100%;
  text-align: left;
  border: 1px solid var(--insights-prompt-border);
  background: var(--insights-prompt-bg);
  border-radius: var(--insights-prompt-radius);
  padding: var(--insights-prompt-padding);
  font-size: var(--insights-font-size-sm);
  color: var(--insights-prompt-color);
  cursor: pointer;
}

.insights-prompt-card:hover {
  background: var(--insights-prompt-bg-hover);
}


/* ─── Table ──────────────────────────────────────────────────────────────── */

.insights-table-wrap {
  margin-top: var(--insights-table-margin-top);
  overflow-x: auto;
}

.insights-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--insights-table-font-size);
  background: var(--insights-table-bg);
}

.insights-table th,
.insights-table td {
  border: 1px solid var(--insights-table-border);
  padding: var(--insights-table-cell-padding);
  text-align: left;
  white-space: nowrap;
}

.insights-table th {
  background: var(--insights-table-header-bg);
  font-weight: 700;
}


/* ─── CTA / Contact Card ─────────────────────────────────────────────────── */

.contact-card {
  display: none;
  margin-top: var(--insights-cta-margin-top);
}

.contact-card.visible {
  display: block;
}

.cta-prompt {
  display: none;
  margin-top: var(--insights-cta-margin-top);
}

.cta-prompt.visible {
  display: block;
}

.cta-button {
  width: 100%;
  box-sizing: border-box;
  padding: var(--insights-cta-padding);
  border: 0;
  border-radius: var(--insights-cta-radius);
  background: var(--insights-cta-bg);
  color: var(--insights-cta-color);
  font-size: var(--insights-font-size-base);
  font-weight: 700;
  cursor: pointer;
}

.cta-button:hover {
  background: var(--insights-cta-bg-hover);
}


/* ─── Lead Form ──────────────────────────────────────────────────────────── */

.lead-form {
  display: none;
  margin-top: var(--insights-form-margin-top);
  padding: var(--insights-form-padding);
  border: 1px solid var(--insights-form-border);
  border-radius: var(--insights-form-radius);
  background: var(--insights-form-bg);
}

.lead-form.visible {
  display: block;
}

.lead-form label {
  display: block;
  margin-top: var(--insights-form-label-margin-top);
  font-size: var(--insights-font-size-sm);
  font-weight: 700;
  color: var(--insights-prompt-color);
}

.lead-form textarea {
  width: 100%;
  box-sizing: border-box;
  margin-top: 4px;
  padding: var(--insights-form-input-padding);
  font-size: var(--insights-font-size-base);
  color: var(--insights-prompt-color);
  background: var(--insights-panel-bg);
  resize: vertical;
  min-height: 72px;
  line-height: 1.4;
  border: 1px solid var(--insights-form-border);
  border-radius: var(--insights-form-input-radius);
}

.lead-form input {
  width: 100%;
  box-sizing: border-box;
  margin-top: 4px;
  padding: var(--insights-form-input-padding);
  font-size: var(--insights-font-size-base);
  color: var(--insights-prompt-color);
  background: var(--insights-panel-bg);
  border: 1px solid var(--insights-form-border);
  border-radius: var(--insights-form-input-radius);
}

.lead-submit {
  margin-top: var(--insights-form-submit-margin-top);
  padding: var(--insights-form-submit-padding);
  cursor: pointer;
}

.lead-status {
  margin-top: var(--insights-form-status-margin-top);
  font-size: var(--insights-font-size-base);
  font-weight: 700;
}

.lead-form-actions {
  display: flex;
  justify-content: flex-end;
  margin-bottom: var(--insights-prompt-title-margin);
}

.lead-back {
  background: none;
  border: 0;
  color: var(--insights-back-color);
  cursor: pointer;
  font-size: var(--insights-font-size-sm);
  font-weight: 700;
  padding: 0;
}

.lead-back:hover {
  text-decoration: underline;
}


/* ─── Typing Dots ────────────────────────────────────────────────────────── */

.typing-dots {
  display: inline-flex;
  gap: var(--insights-dot-gap);
  align-items: center;
}

.typing-dots span {
  width: var(--insights-dot-size);
  height: var(--insights-dot-size);
  background: var(--insights-dot-color);
  border-radius: 50%;
  animation: typingDot 1s infinite ease-in-out;
}

.typing-dots span:nth-child(2) { animation-delay: 0.15s; }
.typing-dots span:nth-child(3) { animation-delay: 0.30s; }

@keyframes typingDot {
  0%, 80%, 100% {
    opacity: 0.35;
    transform: translateY(0);
  }
  40% {
    opacity: 1;
    transform: translateY(-3px);
  }
}


/* ─── Mobile ─────────────────────────────────────────────────────────────── */


/* Launcher text: switch to the short label when space is limited.
   Separate from the 425px mobile-layout block so the panel layout doesn't move. */
@media (max-width: 600px) {
  .insights-text-full {
    display: none;
  }

  .insights-text-short {
    display: inline;
  }
}

@media (max-width: 425px) {


  .tfc-insights-launcher {
    padding: var(--insights-mobile-launcher-padding);
    font-size: var(--insights-mobile-launcher-font-size);
  }

  .tfc-insights-sparkle {
    margin-right: var(--insights-mobile-sparkle-margin);
  }

  .insights-panel {
    left: 50%;
    transform: translateX(-50%);
    right: auto;
    bottom: -70vh;
    width: calc(100% - 20px);
    max-width: var(--insights-mobile-panel-max-width);
    height: var(--insights-mobile-panel-height);
    border-radius: var(--insights-panel-radius);
    transition: bottom 0.25s ease, height 0.2s ease;
  }

  .insights-panel.open {
    bottom: var(--insights-mobile-panel-open-bottom);
  }

  html, body {
    overflow-x: hidden;
  }

  .insights-header {
    padding: var(--insights-mobile-header-padding);
  }
 

  .insights-body {
    padding: var(--insights-mobile-body-padding);
  }

  .insights-footer {
    padding: var(--insights-mobile-footer-padding);
    padding-bottom: calc(var(--insights-mobile-footer-padding) + env(safe-area-inset-bottom));
  }

  .insights-message {
    max-width: var(--insights-mobile-msg-max-width);
    font-size: var(--insights-mobile-msg-font-size);
  }

  .insights-prompt-card {
    font-size: var(--insights-mobile-prompt-font-size);
    padding: var(--insights-mobile-prompt-padding);
  }
}

/* ─── Host page / theme button protection ──────────────────────────────────
   Protect Insights buttons from customer site CSS such as Elementor's
   `.elementor-kit-* button` rules.
──────────────────────────────────────────────────────────────────────────── */

/* Launcher */
.tfc-market-insights button.tfc-insights-launcher {
  height: var(--insights-launcher-height) !important;
  min-width: var(--insights-launcher-min-width) !important;
  padding: var(--insights-launcher-padding) !important;
  border: 1px solid var(--insights-launcher-border) !important;
  border-radius: var(--insights-launcher-border-radius) !important;
  background: var(--insights-launcher-bg) !important;
  color: var(--insights-launcher-color) !important;
  box-shadow: var(--insights-launcher-shadow) !important;
  font-family: var(--insights-font-family) !important;
  font-size: var(--insights-font-size-launcher) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-transform: none !important;
}

.tfc-market-insights button.tfc-insights-launcher:hover,
.tfc-market-insights button.tfc-insights-launcher.active {
  background:   var(--insights-launcher-active-bg) !important;
  border-color: var(--insights-launcher-active-border) !important;
  box-shadow:   var(--insights-launcher-active-shadow) !important;
  animation:    none !important; /* stops any running animation on hover */
}

/* Button animation */
@keyframes tfcStarPulse {
  0%   { opacity: 1;   }
  15%  { opacity: 0.25; }
  40%  { opacity: 1;   }
  100% { opacity: 1;   }  
}

.tfc-insights-sparkle {
  display: inline-block;
  position: relative;
  animation: tfcStarPulse 5s ease-in-out infinite;
  order: -1;     
}

.tfc-market-insights button.tfc-insights-launcher:hover .tfc-insights-sparkle {
  animation: none;
  opacity: 1;
}

/* Shared panel button reset */
.insights-panel button.insights-close,
.insights-panel button.insights-prompt-card,
.insights-panel button.insights-send,
.insights-panel button.cta-button,
.insights-panel button.lead-submit,
.insights-panel button.lead-back {
  font-family: var(--insights-font-family) !important;
  text-transform: none !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

/* Close */
.insights-panel button.insights-close {
  background: none !important;
  border: 0 !important;
  color: var(--insights-prompt-color) !important;
  font-size: var(--insights-font-size-close) !important;
  line-height: 1 !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

  .insights-header-sparkle {
  color: var(--insights-accent);
  margin-right: 6px;
}

/* Prompt cards */
.insights-panel button.insights-prompt-card,
.insights-panel .insights-prompt-card {
  display: block !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;

  text-align: left !important;
  border: 1px solid var(--insights-prompt-border) !important;
  background: var(--insights-prompt-bg) !important;
  border-radius: var(--insights-prompt-radius) !important;
  padding: var(--insights-prompt-padding) !important;

  font-family: var(--insights-font-family) !important;
  font-size: var(--insights-font-size-sm) !important;
  font-weight: 300 !important;
  line-height: 1.35 !important;
  color: var(--insights-prompt-color) !important;
  text-transform: none !important;

  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;

  box-shadow: none !important;
  cursor: pointer !important;
}

/* Send */
.insights-panel button.insights-send {
  width: var(--insights-send-size) !important;
  height: var(--insights-send-size) !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: var(--insights-send-bg) !important;
  color: var(--insights-send-color) !important;
  padding: 0 !important;
}

/* CTA */
.insights-panel button.cta-button {
  padding: var(--insights-cta-padding) !important;
  border: 0 !important;
  border-radius: var(--insights-cta-radius) !important;
  background: var(--insights-cta-bg) !important;
  color: var(--insights-cta-color) !important;
  font-size: var(--insights-font-size-base) !important;
  font-weight: 700 !important;
}

/* Lead submit */
.insights-panel button.lead-submit {
  margin-top: var(--insights-form-submit-margin-top) !important;
  padding: var(--insights-form-submit-padding) !important;
  border: 0 !important;
  border-radius: var(--insights-cta-radius) !important;
  background: var(--insights-cta-bg) !important;
  color: var(--insights-cta-color) !important;
  font-size: var(--insights-font-size-base) !important;
  font-weight: 700 !important;
}

/* Input */
.insights-panel input.insights-input {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;

  padding: var(--insights-input-padding) !important;
  border: 1px solid var(--insights-input-border) !important;
  border-radius: var(--insights-input-radius) !important;
  outline: none !important;

  font-family: var(--insights-font-family) !important;
  font-size: var(--insights-font-size-base) !important;
  line-height: normal !important;
  color: var(--insights-prompt-color) !important;
  background: var(--insights-panel-bg) !important;

  box-shadow: none !important;
  text-transform: none !important;
}

.insights-panel input.insights-input:focus {
  border-color: var(--insights-input-border-focus) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Host theme placeholder color */
.insights-panel input.insights-input::placeholder {
  color: #757575 !important;
  opacity: 1 !important;
}

/* Contain panel width */
.insights-panel,
.insights-body,
.insights-prompts,
.insights-prompt-list {
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.insights-body {
  overflow-x: hidden !important;
}

/* Lead form inputs */
.insights-panel .lead-form input,
.insights-panel .lead-form textarea,
.insights-panel .lead-form input:focus,
.insights-panel .lead-form textarea:focus,
.insights-panel .lead-form input:-webkit-autofill,
.insights-panel .lead-form textarea:-webkit-autofill {
  border-radius: var(--insights-form-input-radius) !important;
}

/* ─── Host theme table protection ──────────────────────────────────────────
   Customer themes may restyle bare tbody/tr (display:block, borders, padding)
   and inject decorative ::after glyphs. Restore native table semantics.
─────────────────────────────────────────────────────────────────────────── */

.insights-panel .insights-table tbody {
  display: table-row-group !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

.insights-panel .insights-table thead {
  display: table-header-group !important;
}

.insights-panel .insights-table tr {
  display: table-row !important;
  padding: 0 !important;
  margin: 0 !important;
}


/* Host theme table styling (font size, padding, striping, borders) leaking into the panel's table */
#insightsPanel .insights-table {
  font-size: var(--insights-table-font-size) !important;
  background: var(--insights-table-bg) !important;
  margin: 0 !important;
  width: 100% !important;
}

#insightsPanel .insights-table th,
#insightsPanel .insights-table td {
  font-size: inherit !important;
  line-height: 1.3 !important;
  padding: var(--insights-table-cell-padding) !important;
  border: 1px solid var(--insights-table-border) !important;
  text-align: left !important;
  vertical-align: middle !important;
  color: var(--insights-prompt-color) !important;
  background: var(--insights-table-bg) !important;
}

#insightsPanel .insights-table th {
  background: var(--insights-table-header-bg) !important;
  font-weight: 700 !important;
}

#insightsPanel .insights-table td {
  font-weight: 400 !important;
}
.insights-panel .insights-table tr::before,
.insights-panel .insights-table tr::after {
  content: none !important;
  display: none !important;
}

/* ─── Host theme button margin ─────────────────────────────────────────────
   Themes commonly set `button { margin: 10px 0 }`, which shifts the
   absolutely-positioned send arrow off-center and adds gaps between
   flex-gapped prompt cards.
─────────────────────────────────────────────────────────────────────────── */
.insights-panel button.insights-close,
.insights-panel button.insights-prompt-card,
.insights-panel button.insights-send,
.insights-panel button.cta-button,
.insights-panel button.lead-back,
.tfc-market-insights button.tfc-insights-launcher,
.tfc-market-insights button.tfc-insights-launcher.active {
  margin: 0 !important;
}

/* ─── Host theme button min-size ───────────────────────────────────────────
   Themes commonly set `button { min-width / min-height }`, which stretches
   the icon buttons (send arrow, close ×) and shifts them off position.
─────────────────────────────────────────────────────────────────────────── */
.insights-panel button.insights-close,
.insights-panel button.insights-send,
.insights-panel button.lead-back {
  min-width: 0 !important;
  min-height: 0 !important;
}

/* ─── Host theme input font-weight ─────────────────────────────────────── */
.insights-panel input.insights-input,
.insights-panel .lead-form input,
.insights-panel .lead-form textarea {
  font-weight: 400 !important;
}

/* ─── Embedded (iframe) mode ───────────────────────────────────────────────
   Inside an iframe, viewport-bottom can be far below the visible area.
   JS sets `top`/`height` from the launcher position on open.
─────────────────────────────────────────────────────────────────────────── */
html.tfc-embedded .insights-panel {
  bottom: auto;
}

html.tfc-embedded .insights-panel:not(.open) {
  visibility: hidden;
}

/* ─── Host theme button margin ─────────────────────────────────────────────
   Themes commonly set `button { margin: 10px 0 }`, which shifts the
   absolutely-positioned send arrow off-center and adds gaps between
   flex-gapped prompt cards.
─────────────────────────────────────────────────────────────────────────── */
.insights-panel button.insights-close,
.insights-panel button.insights-prompt-card,
.insights-panel button.insights-send,
.insights-panel button.cta-button,
.insights-panel button.lead-back,
.tfc-market-insights button.tfc-insights-launcher,
.tfc-market-insights button.tfc-insights-launcher.active {
  margin: 0 !important;
}

/* ─── Host theme button min-size ───────────────────────────────────────────
   Themes commonly set `button { min-width / min-height }`, which stretches
   the icon buttons (send arrow, close ×) and shifts them off position.
─────────────────────────────────────────────────────────────────────────── */
.insights-panel button.insights-close,
.insights-panel button.insights-send,
.insights-panel button.lead-back {
  min-width: 0 !important;
  min-height: 0 !important;
}

/* ─── Host theme input font-weight ─────────────────────────────────────── */
.insights-panel input.insights-input,
.insights-panel .lead-form input,
.insights-panel .lead-form textarea {
  font-weight: 400 !important;
}

/* ─── Embedded (iframe) mode ───────────────────────────────────────────────
   Inside an iframe, viewport-bottom can be far below the visible area.
   JS sets `top`/`height` from the launcher position on open.
─────────────────────────────────────────────────────────────────────────── */
html.tfc-embedded .insights-panel {
  bottom: auto;
}

html.tfc-embedded .insights-panel:not(.open) {
  visibility: hidden;
}