/* YN-PREMIUM-20260930
   Shared visual safety layer. Keep product-specific colors and behavior in each app. */
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%}
body{overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
:where(main,section,article,aside,header,footer,nav,form,.container,.wrap,.card,.panel){min-width:0}
:where(h1,h2,h3,h4,p,label,summary,.card,.panel,.tool-card){overflow-wrap:anywhere}
:where(input,textarea,select,button){max-width:100%;font:inherit}
:where(input,textarea,select){min-width:0;min-height:44px}
:where(input,textarea,select)::placeholder{opacity:.72}
:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:3px solid #7c3aed;outline:3px solid color-mix(in srgb,var(--primary,#7c3aed) 72%,#fff);outline-offset:3px}
:where(.card,.panel,.tool-card,.feature-card,.pricing-card,.result-card,.stat-card){min-width:0;border-radius:clamp(14px,2vw,20px)}
:where(.grid,.cards,.tool-grid,.tools-grid,.feature-grid,.features-grid,.pricing-grid,.deal-grid,.promo-grid)>*{min-width:0;height:100%}
:where(.form-row,.form-grid,.input-row,.input-group,.field,.field-row){min-width:0}
#nbFamilyBar{box-sizing:border-box;width:min(100%,1180px);color:inherit}
#nbFamilyBar .nbf-head,#nbFamilyBar .nbf-card{color:inherit}
#nbFamilyBar .nbf-card{box-sizing:border-box;flex:0 0 280px;width:280px;min-width:280px;color:inherit!important}
#nbFamilyBar .nbf-card:visited{color:inherit!important}
#nbFamilyBar .nbf-txt{flex:1 1 auto;min-width:0;overflow:hidden}
#nbFamilyBar .nbf-txt b,#nbFamilyBar .nbf-txt span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#nbFamilyBar .nbf-txt span{opacity:.82}
#nbFamilyBar .nbf-go{flex:0 0 auto;min-width:48px;text-align:center}
.ad-slot,.ad-inner,.adsbygoogle{box-sizing:border-box;min-width:0;max-width:100%}
.ad-inner{overflow-x:clip;overflow-y:visible}
.ad-inner>div,.ad-inner iframe{max-width:100%!important}
ins.adsbygoogle:not([data-ad-status="filled"]){min-height:0!important;max-height:160px;overflow:hidden}
ins.adsbygoogle[data-ad-status="unfilled"]{display:none!important;min-height:0!important;max-height:0!important}
.ad-slot:not(:has(ins.adsbygoogle[data-ad-status="filled"])),.ad-inner:not(:has(ins.adsbygoogle[data-ad-status="filled"])){min-height:0!important;max-height:160px;overflow:hidden}
.ad-slot:has(ins.adsbygoogle[data-ad-status="filled"]),.ad-inner:has(ins.adsbygoogle[data-ad-status="filled"]){max-height:none!important;overflow-y:visible!important}
@media (max-width:900px){
  #nbFamilyBar{padding-inline:16px}
  :where(.feature-grid,.features-grid,.pricing-grid,.tools-grid){grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  #nbFamilyBar{margin-block:16px 8px;padding-inline:14px}
  #nbFamilyBar .nbf-vp{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;-webkit-mask-image:none;mask-image:none;scrollbar-width:thin}
  #nbFamilyBar .nbf-track{animation:none!important;transform:none!important}
  #nbFamilyBar .nbf-card{flex:0 0 min(264px,calc(100vw - 56px));width:min(264px,calc(100vw - 56px));min-width:min(264px,calc(100vw - 56px));scroll-snap-align:start}
  :where(.feature-grid,.features-grid,.pricing-grid,.tools-grid){grid-template-columns:1fr}
  :where(.hero-actions,.form-actions,.button-row,.actions){flex-wrap:wrap}
}
@media (max-width:560px){
  :where(.hero-actions,.form-actions)>.btn,:where(.hero-actions,.form-actions)>button{width:100%;justify-content:center}
  :where(input,textarea,select,button,.btn){min-height:44px}
}
@media (max-width:480px){
  #nbFamilyBar{padding-inline:12px}
  #nbFamilyBar .nbf-head{align-items:flex-start;gap:6px;flex-direction:column}
  :where(.card,.panel,.tool-card,.feature-card,.pricing-card,.result-card){border-radius:14px}
  :where(.form-row,.input-row,.button-row){gap:10px}
}
/* Hidden rails must not reserve first-paint space; visible rails keep their native layout. */
#promo[hidden],#promoBanner[hidden],#familySlider[hidden],#famband[hidden],[data-promo][hidden],
#recruit[hidden],#recruit369[hidden],#recruitBanner[hidden],#recruitSlider[hidden],#recruitBar[hidden],[data-recruit][hidden]{display:none!important;height:0!important;min-height:0!important;max-height:0!important;margin:0!important;padding:0!important;border:0!important;overflow:hidden!important}
/* YN-PREMIUM-QA-20260930: AA contrast for the HOT status badge. */
.badge-hot { background: #c2187a !important; color: #fff !important; }

/* YN10-HEADER-FOOTER-QA-20260930
   Keep the real #nav fixed while preventing the policy nav in the growth CTA
   from inheriting the site's global fixed-nav rule. */
.yn-growth-footer nav {
  position: static !important;
  inset: auto !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  z-index: auto !important;
  padding: 0 !important;
  justify-content: flex-start !important;
  background: transparent !important;
  border: 0 !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  transition: none !important;
}

/* The auth button is appended as a third direct child of #nav. Compact only
   the mobile header controls so all three groups stay inside the viewport. */
@media (max-width: 720px) {
  #nav {
    padding-inline: 12px !important;
    column-gap: 8px;
  }
  #nav > .logo {
    flex: 0 1 auto;
    min-width: 0;
  }
  #nav > .logo .logo-sub {
    display: none !important;
  }
  #nav > .nav-cta {
    flex: 0 1 auto;
    min-width: 0;
    gap: 8px;
  }
  #nav > .nav-cta .btn-primary {
    display: none !important;
  }
  #nav > #nbaBtn {
    flex: 0 0 auto;
    margin-left: 0 !important;
    padding-inline: 10px;
  }
}

/* YN10 final AA pass: one readable secondary token across search, labels and cards. */
:root{--txt-3:#9aa4c1!important}
.tool-search input::placeholder{color:var(--txt-3)!important;opacity:1!important}
