/* TackleSonar R78 — unified thread dialogs, Saved Builds merge, market filters,
   category links, image assistant footer, and homepage first-paint cleanup. */

/* --------------------------------------------------------------------------
   1) One thread modal design for Deal threads + Build Like Me social threads
   -------------------------------------------------------------------------- */
dialog.ts-thread-dialog-r64{
  width:min(1120px,calc(100vw - 34px))!important;
  max-width:1120px!important;
  height:min(900px,calc(100dvh - 28px))!important;
  max-height:calc(100dvh - 28px)!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:26px!important;
}
.ts-thread-dialog-r64 .ts-thread-shell-r64{
  position:relative!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  padding:0!important;
  overflow:hidden!important;
  background:#fff!important;
}
.ts-thread-dialog-r64 .ts-thread-head-r64{
  position:relative!important;
  display:grid!important;
  justify-items:center!important;
  gap:4px!important;
  padding:20px 72px 16px!important;
  border-bottom:1px solid #d9e8ef!important;
  background:linear-gradient(180deg,#fff,#fbfdff)!important;
  text-align:center!important;
}
.ts-thread-dialog-r64 .ts-thread-head-r64 .ts-modal-brand-r57{
  width:142px!important;
  max-height:48px!important;
  margin:0 auto 7px!important;
}
.ts-thread-dialog-r64 .ts-thread-head-r64 .eyebrow{margin:0!important}
.ts-thread-dialog-r64 .ts-thread-head-r64 h2{margin:2px 0 2px!important;font-size:28px!important;line-height:1.12!important}
.ts-thread-dialog-r64 .ts-thread-head-r64 p{margin:0!important;font-size:13px!important;line-height:1.45!important;color:#668097!important}
.ts-thread-dialog-r64 .ts-thread-close-r64{
  position:absolute!important;
  top:18px!important;
  right:20px!important;
  left:auto!important;
  margin:0!important;
  z-index:20!important;
  width:42px!important;
  height:42px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
}
.ts-thread-dialog-r64 .ts-thread-scroll-r64{
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:18px 24px 22px!important;
  background:linear-gradient(180deg,#fbfeff,#f6fbfd)!important;
  scrollbar-gutter:stable!important;
}
.ts-thread-dialog-r64 .ts-thread-scroll-r64>.thread-modal-list-r48,
.ts-thread-dialog-r64 .ts-thread-scroll-r64>.creator-social-thread-list-r57{
  width:min(1000px,100%)!important;
  max-width:1000px!important;
  margin:0 auto!important;
  display:grid!important;
  gap:12px!important;
}
.ts-thread-dialog-r64 .ts-thread-node-r64{
  position:relative!important;
  display:grid!important;
  grid-template-columns:48px minmax(0,1fr)!important;
  gap:13px!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:14px 15px!important;
  border:1px solid #cfe2eb!important;
  border-radius:16px!important;
  background:#fff!important;
  box-shadow:0 6px 18px rgba(8,42,79,.045)!important;
}
/* Depth is intentionally shallow. Parent quote chips show exact reply context,
   so deep threads never become a narrow staircase. */
.ts-thread-dialog-r64 .ts-thread-node-r64[data-thread-depth="1"]{margin-left:18px!important;width:calc(100% - 18px)!important}
.ts-thread-dialog-r64 .ts-thread-node-r64[data-thread-depth="2"]{margin-left:34px!important;width:calc(100% - 34px)!important}
.ts-thread-dialog-r64 .ts-thread-children-r64,
.ts-thread-dialog-r64 .thread-modal-children-r57,
.ts-thread-dialog-r64 .creator-social-thread-children-r57{
  margin:10px 0 0!important;
  padding:0!important;
  border:0!important;
  min-width:0!important;
  display:grid!important;
  gap:10px!important;
}
.ts-thread-dialog-r64 .ts-thread-children-r64:before,
.ts-thread-dialog-r64 .thread-modal-children-r57:before,
.ts-thread-dialog-r64 .creator-social-thread-children-r57:before,
.ts-thread-dialog-r64 .ts-thread-children-r64>.ts-thread-node-r64:before,
.ts-thread-dialog-r64 .thread-modal-children-r57>.thread-modal-entry-r48:before,
.ts-thread-dialog-r64 .creator-social-thread-children-r57>.creator-social-comment-r57:before{display:none!important}
.ts-thread-dialog-r64 .ts-thread-avatar-r64,
.ts-thread-dialog-r64 .creator-social-comment-avatar-r57,
.ts-thread-dialog-r64 .comment-avatar{
  width:46px!important;
  height:46px!important;
  min-width:46px!important;
  margin:0!important;
  border:1px solid #c7e1ec!important;
  border-radius:50%!important;
  padding:3px!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  background:#eef8fc!important;
  color:#0876a1!important;
  font-weight:900!important;
}
.ts-thread-dialog-r64 .ts-thread-avatar-r64 img,
.ts-thread-dialog-r64 .creator-social-comment-avatar-r57,
.ts-thread-dialog-r64 .comment-avatar img{width:100%!important;height:100%!important;object-fit:cover!important;border-radius:50%!important}
.ts-thread-dialog-r64 .comment-avatar img[src*="tacklesonar-emblem"],
.ts-thread-dialog-r64 .creator-social-comment-avatar-r57[src*="tacklesonar-emblem"]{object-fit:contain!important;padding:3px!important}
.ts-thread-dialog-r64 .ts-thread-body-r64{min-width:0!important;width:100%!important;overflow:visible!important}
.ts-thread-dialog-r64 .ts-thread-body-r64>header{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin:0 0 8px!important;
  min-width:0!important;
}
.ts-thread-dialog-r64 .ts-thread-body-r64>header>div:first-child{min-width:0!important;display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:4px 8px!important}
.ts-thread-dialog-r64 .ts-thread-body-r64>header strong{font-size:15px!important;line-height:1.25!important;color:#0b3154!important;overflow-wrap:anywhere!important}
.ts-thread-dialog-r64 .ts-thread-body-r64>header small{flex-basis:100%!important;font-size:11px!important;color:#6a8195!important}
.ts-thread-dialog-r64 .ts-thread-body-r64>p{margin:0!important;font-size:14px!important;line-height:1.55!important;color:#173b59!important;overflow-wrap:anywhere!important}
.ts-thread-dialog-r64 .ts-thread-parent-r64{
  display:flex!important;
  align-items:flex-start!important;
  gap:8px!important;
  width:auto!important;
  max-width:100%!important;
  margin:0 0 10px!important;
  padding:8px 10px!important;
  border:1px solid #d4ebf3!important;
  border-radius:11px!important;
  background:#eaf8fc!important;
  color:#176383!important;
  font-size:12px!important;
  line-height:1.4!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.ts-thread-dialog-r64 .ts-thread-parent-r64 q{color:#476c84!important}
.ts-thread-dialog-r64 .ts-thread-actions-r64,
.ts-thread-dialog-r64 .creator-social-comment-actions-r57{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:6px!important;
  flex-wrap:wrap!important;
  flex:0 0 auto!important;
}
.ts-thread-dialog-r64 .ts-thread-actions-r64 button,
.ts-thread-dialog-r64 .ts-thread-actions-r64 a,
.ts-thread-dialog-r64 .creator-social-comment-actions-r57 button{
  min-height:32px!important;
  padding:6px 10px!important;
  border:1px solid #c5dfea!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#08739d!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:850!important;
  white-space:nowrap!important;
}
.ts-thread-dialog-r64 .ts-thread-reply-form-r64{margin-top:11px!important;padding:12px!important;border-radius:12px!important}
.ts-thread-dialog-r64 .ts-thread-footer-r64{
  position:relative!important;
  z-index:10!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  width:100%!important;
  margin:0!important;
  padding:12px 24px 16px!important;
  border-top:1px solid #d9e8ef!important;
  background:#fff!important;
}
.ts-thread-dialog-r64 .ts-thread-footer-r64 .btn{min-width:210px!important}

@media(max-width:700px){
  dialog.ts-thread-dialog-r64{width:calc(100vw - 12px)!important;height:calc(100dvh - 12px)!important;max-height:calc(100dvh - 12px)!important;border-radius:19px!important}
  .ts-thread-dialog-r64 .ts-thread-head-r64{padding:18px 54px 13px!important}
  .ts-thread-dialog-r64 .ts-thread-head-r64 .ts-modal-brand-r57{width:126px!important;margin-bottom:4px!important}
  .ts-thread-dialog-r64 .ts-thread-head-r64 h2{font-size:23px!important}
  .ts-thread-dialog-r64 .ts-thread-close-r64{top:12px!important;right:12px!important;width:38px!important;height:38px!important}
  .ts-thread-dialog-r64 .ts-thread-scroll-r64{padding:12px 10px 16px!important}
  .ts-thread-dialog-r64 .ts-thread-node-r64{grid-template-columns:40px minmax(0,1fr)!important;gap:10px!important;padding:11px!important}
  .ts-thread-dialog-r64 .ts-thread-avatar-r64,.ts-thread-dialog-r64 .creator-social-comment-avatar-r57,.ts-thread-dialog-r64 .comment-avatar{width:40px!important;height:40px!important;min-width:40px!important}
  .ts-thread-dialog-r64 .ts-thread-node-r64[data-thread-depth="1"]{margin-left:8px!important;width:calc(100% - 8px)!important}
  .ts-thread-dialog-r64 .ts-thread-node-r64[data-thread-depth="2"]{margin-left:16px!important;width:calc(100% - 16px)!important}
  .ts-thread-dialog-r64 .ts-thread-body-r64>header{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}
  .ts-thread-dialog-r64 .ts-thread-parent-r64{font-size:11px!important;padding:7px 8px!important}
  .ts-thread-dialog-r64 .ts-thread-footer-r64{padding:10px 12px 12px!important}
  .ts-thread-dialog-r64 .ts-thread-footer-r64 .btn{width:100%!important;min-width:0!important}
}

/* --------------------------------------------------------------------------
   2) Saved Builds account/link merge prompt
   -------------------------------------------------------------------------- */
.kit-merge-dialog-r78{width:min(620px,calc(100vw - 24px))!important;padding:0!important;overflow:hidden!important;border-radius:24px!important}
.kit-merge-head-r78{padding:26px 54px 16px!important}
.kit-merge-copy-r78{display:grid!important;gap:5px!important;margin:0 24px!important;padding:14px 16px!important;border:1px solid #cce5ef!important;border-radius:15px!important;background:#f1fbfe!important;color:#315b75!important}
.kit-merge-copy-r78 strong{color:#0b3b60!important}
.kit-merge-actions-r78{display:flex!important;justify-content:center!important;gap:10px!important;padding:18px 24px 24px!important}
.kit-merge-actions-r78 .btn{min-height:44px!important}
@media(max-width:600px){.kit-merge-actions-r78{display:grid!important;grid-template-columns:1fr!important}.kit-merge-actions-r78 .btn{width:100%!important}.kit-merge-head-r78{padding-inline:46px!important}}

/* --------------------------------------------------------------------------
   3) Homepage: do not expose partial sonar geometry while the wave is loading.
   The shadow begins only when the intentional wash-reveal phase starts.
   -------------------------------------------------------------------------- */
.home-hero-r70:not(.r70-wash-reveal) .ts-sonar-zone-r70::after,
.home-hero-r70:not(.r70-wash-reveal) .ts-sonar-logo-r70::before{opacity:0!important}
.home-hero-r70:not(.r70-wash-reveal) .ts-sonar-dial-r70,
.home-hero-r70:not(.r70-wash-reveal) .ts-sonar-rings-r70,
.home-hero-r70:not(.r70-sonar-live) .ts-sonar-pulse-r70,
.home-hero-r70:not(.r70-sonar-live) .ts-sonar-sweep-r70,
.home-hero-r70:not(.r70-logo-reveal) .ts-sonar-logo-r70,
.home-hero-r70:not(.r70-sonar-live) .ts-market-live-card-r70{opacity:0!important}

/* --------------------------------------------------------------------------
   4) /deals selectors — match the polished Build Like Me controls
   -------------------------------------------------------------------------- */
.market-filter-bar-r18 label{position:relative!important;min-width:0!important}
.market-filter-bar-r18 label>span{display:block!important;margin-bottom:6px!important;font-size:11px!important;font-weight:900!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:#506c83!important}
.market-filter-bar-r18 input,
.market-filter-bar-r18 select{
  width:100%!important;
  min-height:48px!important;
  border:1px solid #c9dfe9!important;
  border-radius:13px!important;
  background:#fff!important;
  color:#0b3154!important;
  font-size:15px!important;
  font-weight:750!important;
  box-shadow:0 3px 12px rgba(9,50,86,.035)!important;
  transition:border-color .16s ease,box-shadow .16s ease!important;
}
.market-filter-bar-r18 input{padding:0 14px!important}
.market-filter-bar-r18 select{
  appearance:none!important;
  -webkit-appearance:none!important;
  padding:0 42px 0 14px!important;
  cursor:pointer!important;
}
.market-filter-bar-r18 label:has(select)::after{
  content:"⌄"!important;
  position:absolute!important;
  right:15px!important;
  bottom:14px!important;
  z-index:2!important;
  color:#0b3154!important;
  font-size:18px!important;
  font-weight:900!important;
  line-height:1!important;
  pointer-events:none!important;
}
.market-filter-bar-r18 input:focus,.market-filter-bar-r18 select:focus{outline:none!important;border-color:#1abbe4!important;box-shadow:0 0 0 3px rgba(26,187,228,.13)!important}

/* --------------------------------------------------------------------------
   5) Category badges are navigation, so make them look/behave clickable.
   -------------------------------------------------------------------------- */
.badge-link-r78{display:inline-flex!important;align-items:center!important;text-decoration:none!important;cursor:pointer!important;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease!important}
.badge-link-r78:hover{transform:translateY(-1px)!important;border-color:#6bcde5!important;box-shadow:0 5px 12px rgba(7,90,126,.10)!important}
.badge-link-r78:focus-visible{outline:3px solid rgba(18,190,229,.25)!important;outline-offset:2px!important}

/* --------------------------------------------------------------------------
   6) Admin Product Image Assistant — only the candidate area scrolls. Footer
   always remains at the actual bottom of the modal.
   -------------------------------------------------------------------------- */
dialog.image-search-dialog-r23.image-search-dialog-r60{overflow:hidden!important}
.image-search-dialog-r23.image-search-dialog-r60 .image-search-shell-r23.image-search-shell-r60{
  display:grid!important;
  grid-template-rows:auto auto auto minmax(0,1fr) auto!important;
  width:100%!important;
  height:min(880px,calc(100dvh - 32px))!important;
  max-height:calc(100dvh - 32px)!important;
  padding:0!important;
  overflow:hidden!important;
  background:#fff!important;
}
.image-search-dialog-r23.image-search-dialog-r60 .image-search-head-r60,
.image-search-dialog-r23.image-search-dialog-r60 .image-search-toolbar-r60,
.image-search-dialog-r23.image-search-dialog-r60 .image-search-results-head-r60{min-height:0!important;flex:none!important}
.image-search-dialog-r23.image-search-dialog-r60 .image-candidate-grid-r60{
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  align-content:start!important;
  margin:0!important;
  padding:8px 24px 18px!important;
}
.image-search-dialog-r23.image-search-dialog-r60 .image-search-footer-r60{
  position:relative!important;
  inset:auto!important;
  grid-row:5!important;
  z-index:12!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  width:100%!important;
  margin:0!important;
  padding:13px 24px 16px!important;
  border-top:1px solid #dce9ef!important;
  background:#fff!important;
  box-shadow:0 -8px 20px rgba(9,44,74,.04)!important;
}
.image-search-dialog-r23.image-search-dialog-r60 .image-search-footer-r60 .btn{min-width:150px!important}
@media(max-width:700px){.image-search-dialog-r23.image-search-dialog-r60 .image-search-footer-r60{display:grid!important;grid-template-columns:1fr!important;padding:11px 14px 13px!important}.image-search-dialog-r23.image-search-dialog-r60 .image-search-footer-r60 .btn{width:100%!important}.image-search-dialog-r23.image-search-dialog-r60 .image-candidate-grid-r60{padding-inline:14px!important}}
