/* Shared small utility icons. Header/navigation icons and artwork keep their own scale.
   This final layer overrides older page-specific sizes. Button hit areas stay intact. */
:root{--utility-icon-size:16px;--utility-icon-stroke:1.5px;--utility-icon-color:var(--ink-2)}
:is(#tokensSettingsToggle svg,
  .th-contract-copy svg,
  .star svg,
  #walletCopy svg,
  .ex-copy svg,
  .cp-info svg,
  .grad-card svg,
  .grad-permission-close svg,
  .trade-icon-button svg,
  .trade-token-button>svg,
  .trade-search-wrap>svg,
  .trade-footnote svg,
  .trade-heading-icon,
  #acctPop :is(.acct-action,.acct-copy,.acct-x,.acct-prof)>svg,
  .view .feature-lock-icon,
  .view .kpi-lock-icon):not(#topbar svg,#drawer svg,#tabbar svg){
  width:var(--utility-icon-size)!important;height:var(--utility-icon-size)!important;
  min-width:var(--utility-icon-size)!important;max-width:var(--utility-icon-size)!important;
  min-height:var(--utility-icon-size)!important;max-height:var(--utility-icon-size)!important;
  flex:0 0 var(--utility-icon-size)!important;
  color:var(--utility-icon-color)!important;fill:none;stroke:currentColor!important;
  stroke-width:var(--utility-icon-stroke)!important;stroke-linecap:round!important;stroke-linejoin:round!important;
}
:is(#tokensSettingsToggle svg,
  .th-contract-copy svg,
  .star svg,
  #walletCopy svg,
  .ex-copy svg,
  .cp-info svg,
  .grad-card svg,
  .grad-permission-close svg,
  .trade-icon-button svg,
  .trade-token-button>svg,
  .trade-search-wrap>svg,
  .trade-footnote svg,
  .trade-heading-icon,
  #acctPop :is(.acct-action,.acct-copy,.acct-x,.acct-prof)>svg,
  .view .feature-lock-icon,
  .view .kpi-lock-icon):not(#topbar svg,#drawer svg,#tabbar svg) :is(path,rect,circle,ellipse,line,polyline,polygon){
  stroke:currentColor!important;stroke-width:var(--utility-icon-stroke)!important;
  stroke-linecap:round!important;stroke-linejoin:round!important;
  vector-effect:non-scaling-stroke;
}
/* A filled star still indicates saved state, using the same icon color. */
.view .star.on svg path,.grad-card .star.on svg path{fill:currentColor!important}
/* Question marks use the same geometry and stroke instead of font-dependent glyphs. */
.view :is(.kpi-help,.tokens-help,.pons-help){
  font-size:0!important;border:0!important;min-width:16px;min-height:16px;
  color:var(--utility-icon-color)!important;
}
.view :is(.kpi-help,.tokens-help,.pons-help)::before{
  content:"";display:block;width:var(--utility-icon-size);height:var(--utility-icon-size);flex:none;
  background:var(--utility-icon-color);
  mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%228%22%20cy%3D%228%22%20r%3D%226.25%22%2F%3E%3Cpath%20d%3D%22M6.25%206a1.75%201.75%200%200%201%203.5%200c0%201.25-1.75%201.4-1.75%202.75M8%2011h.01%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
}
