/* SearchSignal UI smoothing pass (2026-10-02). Additive overrides; loaded last.
   Scope: focus/hover/active/disabled states, tap targets, type floor, motion,
   reveal-without-hidden-state, mobile nav anchoring, tool page tables/forms. */
:root{
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
  --muted-2:#7b899c;            /* was #6f7c8f: lifts tiny labels to >=5:1 on panels */
  --focus-ring:0 0 0 2px #05070b,0 0 0 4px #5bd8ff;
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- Type floor: nothing under ~10.5px on the marketing pages ---------- */
/* (product-mockup internals such as .metric-box/.opportunity/.result-row are illustrations and are left as-is) */
.launch-rail nav a,.tag,.tool-pill,.integration-type,.stat span,.footer-signal,.preview-ribbon,
.launch-footer-band div:last-child,.methodology-table th,.architecture-names span,.compare-teaser-head span{font-size:.66rem}
.footer-column a{font-size:.8rem;padding:8px 0;line-height:1.35}
.footer-bottom,.footer-legal{font-size:.72rem}
.footer-legal a{display:inline-block;padding:6px 0}
.mega-link span{font-size:.75rem}
.card .meta,.app-card-head .meta{font-size:.68rem}
.methodology-card p,.route-visual-points span,.launch-trust-list small{font-size:.8rem;line-height:1.55}
.launch-footer-band span{font-size:.72rem}

/* ---------- Interactive states ---------- */
a,button,[role=button],input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:none;box-shadow:var(--focus-ring);border-radius:8px}
.button:focus-visible,.nav-link:focus-visible,.nav-trigger:focus-visible,.menu-toggle:focus-visible{border-radius:13px}
.button.primary:focus-visible{box-shadow:var(--focus-ring),0 14px 35px rgba(91,216,255,.13)}
.text-link:focus-visible,.footer-column a:focus-visible,.mobile-panel a:focus-visible,.breadcrumbs a:focus-visible{box-shadow:var(--focus-ring);border-radius:6px}

.button{transition:transform .18s var(--ease),border-color .18s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease),opacity .18s var(--ease)}
.button:active,body.launch-final .button.primary:active{transform:translateY(0) scale(.985)}
.button[disabled],.button[aria-disabled=true],.button.is-loading,button[disabled]{cursor:not-allowed;opacity:.55;transform:none!important;box-shadow:none!important;pointer-events:none}
.button.is-loading{position:relative;color:transparent!important}
.button.is-loading::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid currentColor;border-color:#05070b transparent #05070b transparent;animation:ss-spin .8s linear infinite}
.button:not(.primary).is-loading::after{border-color:#eaf6ff transparent #eaf6ff transparent}
@keyframes ss-spin{to{transform:rotate(360deg)}}
.text-link,.footer-column a,.footer-legal a,.mobile-panel a,.mega-link,.nav-link,.nav-trigger,.faq button,.breadcrumbs a{transition:color .16s var(--ease),background-color .16s var(--ease),border-color .16s var(--ease)}
.text-link:hover{text-decoration:underline;text-underline-offset:3px}
.footer-column a:hover,.footer-legal a:hover,.breadcrumbs a:hover{color:#eaf6ff;text-decoration:underline;text-underline-offset:3px}

/* ---------- Tap targets ---------- */
.nav-link,.nav-trigger{min-height:44px}
.menu-toggle{width:44px;height:44px}
.mobile-panel a{min-height:44px}
.faq button{min-height:48px}
.tab-button,.demo-prompt,.product-tour-nav button,[data-copy]{min-height:40px}
@media (pointer:coarse){
  .button.small{min-height:44px}
  .tab-button,.demo-prompt,[data-copy],.launch-rail nav a{min-height:44px;display:inline-flex;align-items:center}
}

/* ---------- Desktop mega-menu: click (aria-expanded) opens it too, not only hover ---------- */
.nav-trigger[aria-expanded=true]+.mega-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav-trigger[aria-expanded=true]::after{transform:rotate(-135deg) translateY(-2px)}

/* ---------- Mobile nav: anchor the panel to the sticky header, not a fixed offset
     (the announcement bar scrolls away, which left a gap under the header) ---------- */
@media (max-width:1120px){
  .site-header{overflow:visible}
  .mobile-panel{position:absolute;top:calc(100% + 8px);left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));max-height:calc(100dvh - var(--header-height) - 24px);overscroll-behavior:contain}
  .mobile-panel.open{animation:ss-panel .22s var(--ease) both}
  @keyframes ss-panel{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
}

/* ---------- Reveal: never hide content. Items start visible; .visible plays a short lift. ---------- */
.reveal{opacity:1;transform:none;transition:none}
.reveal.visible{animation:ss-reveal .55s var(--ease) both}
@keyframes ss-reveal{from{opacity:.25;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ---------- Layout hygiene ---------- */
html{scroll-padding-top:calc(var(--header-height) + 24px)}
img{height:auto} /* width/height attrs still reserve the box via the UA aspect-ratio mapping */
.comparison-wrap,.methodology-table,.docs-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
pre,.code-block,.tool-out{overflow-x:auto;max-width:100%}
code{overflow-wrap:anywhere}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:6px 8px;margin-bottom:18px;color:var(--muted-2);font-size:.74rem}
.breadcrumbs a{color:var(--muted)}
@media (max-width:600px){
  .container{width:min(var(--max),calc(100% - 32px))}
  .section{padding:64px 0}.section.compact{padding:48px 0}
  .actions{gap:10px}.actions .button{flex:1 1 100%;min-height:50px}
  .subhero .lede,.v2-hero-copy .lede{font-size:1.05rem}
  .price-card .button{min-height:52px}
  .announcement{font-size:.66rem}
}
@media (max-width:420px){
  h1{font-size:clamp(2.5rem,13vw,3.4rem)!important;letter-spacing:-.05em}
  h2{font-size:clamp(1.9rem,9.5vw,2.7rem)!important}
}

/* ---------- Free tools (/tools/*) ---------- */
.tool-card{padding:clamp(16px,4vw,24px);border-color:#1d2b3d}
.tool-card label{font-size:.9rem}
.tool-card input,.tool-card textarea,.tool-card select{min-height:46px;border-radius:12px;transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}
.tool-card input:focus,.tool-card textarea:focus,.tool-card select:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(91,216,255,.16)}
.tool-card input::placeholder,.tool-card textarea::placeholder{color:#6f7f93}
.tool-card .button{margin-top:16px}
.tool-card .button+.button{margin-left:8px}
.tool-small{line-height:1.55}
.tool-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:12px;border:1px solid var(--line);border-radius:12px;scrollbar-width:thin}
.tool-table-wrap .tool-table{margin-top:0;min-width:560px}
.tool-table th{position:sticky;top:0;background:var(--panel-2);color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.tool-table td{vertical-align:top;font-size:.86rem;line-height:1.45}
.tool-table tbody tr:hover{background:rgba(255,255,255,.025)}
.tool-table tr:last-child td{border-bottom:0}
.tool-table code{font-size:.78rem;background:rgba(255,255,255,.04);padding:1px 5px;border-radius:5px}
.tool-grid a{transition:border-color .18s var(--ease),transform .18s var(--ease),background .18s var(--ease)}
.tool-grid a:hover{transform:translateY(-2px);background:var(--panel-2)}
.tool-grid a:focus-visible{border-color:var(--cyan)}
.tool-out:empty{display:none}
@media (max-width:600px){
  .tool-card .button{width:100%;margin-left:0!important}
  .tool-card .button+.button{margin-top:10px}
  .serp{padding:14px}
}

/* ---------- Motion ---------- */
@media (prefers-reduced-motion:reduce){
  .reveal.visible,.mobile-panel.open,.button.is-loading::after{animation:none!important}
  .button:hover,.card.hover:hover,.tool-grid a:hover,body.launch-final .button.primary:hover{transform:none}
}

/* ---------- Follow-ups after the first after-screenshots ---------- */
.price-note a,.card p a,.faq-answer a,.prose-block a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.price-note a:hover{color:#eaf6ff}
@media (max-width:600px){
  /* keep Crawler + Status visible without scrolling: drop the Operator column on phones */
  .tool-table-wrap .tool-table{min-width:0}
  .tool-table th:nth-child(2),.tool-table td:nth-child(2){display:none}
  .tool-table th,.tool-table td{padding:8px 8px}
  .tool-table code{font-size:.72rem;white-space:nowrap}
}
